Russian Qt Forum
Ноябрь 23, 2024, 02:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
Редактирование preferences (цвет окон)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Редактирование preferences (цвет окон) (Прочитано 5249 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Редактирование preferences (цвет окон)
«
:
Сентябрь 16, 2014, 13:57 »
Добрый день
Почему-то испытываю затруднения с казалось бы очень простой задачей. Есть модальный диалог в котором, помимо всего прочего, есть настройка background цвета всех окон приложения. Есть такие контролы
- сам виджет цвета (назовем его ColorBox). Если юзер изменил там цвет - все окна должны перерисоваться немедленно, чтобы был виден рез-т.
- кнопка Default (рядом с ColorBox). Ставиться цвет по умолчанию и все окна перерисовываются
- общая кнопка Reset для сброса всех установок, для цвета ф-ционал тот же что и Default
- Ok и Cancel кнопки - стандартно, принять или отменить. Разумеется при отмене цвет надо вернуть на исходный если он был изменен.
И что-то у меня выходит как-то длинно, откуда-то вылазят переменные, методы. Наверное перемудрил. А как бы Вы делали?
Спасибо
Записан
Bepec
Гость
Re: Редактирование preferences (цвет окон)
«
Ответ #1 :
Сентябрь 16, 2014, 14:03 »
1 метод не пойдёт? просто метод изменения цвета.
И 1 переменная цвета бывшего ранее.
Переменная цвета бывшего ранее заполняется в конструкторе и не меняется в течении всей жизни диалога.
Изменяемый цвет будет храниться в самом colorBox.
default и reset вызовут метод с константным цветом (#000000 допустим).
Ok - вызываем метод с цветом из colorBox и передаём его наружу (куда то, чтоб он там был запомнен).
Cancel - вызываем метод с переменной цвета бывшего ранее.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Редактирование preferences (цвет окон)
«
Ответ #2 :
Сентябрь 16, 2014, 14:28 »
Цитата: Igors от Сентябрь 16, 2014, 13:57
Если юзер изменил там цвет - все окна должны перерисоваться немедленно, чтобы был виден рез-т.
Коли такая политика, то ни каких Ok/Cancel быть не должно.
Записан
Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
Re: Редактирование preferences (цвет окон)
«
Ответ #3 :
Сентябрь 16, 2014, 15:28 »
По-моему логично Ok Cancel. К тому же в примерах Qt такая же логика имеется.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Редактирование preferences (цвет окон)
«
Ответ #4 :
Сентябрь 16, 2014, 15:33 »
Цитата: Bepec от Сентябрь 16, 2014, 15:28
По-моему логично Ok Cancel. К тому же в примерах Qt такая же логика имеется.
Коли есть Ok и Cancel, то в таком случае должна быть Apply.
Если изменение настроек применяется сразу, то кроме как Close больше ничего не должно быть.
Записан
Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
Re: Редактирование preferences (цвет окон)
«
Ответ #5 :
Сентябрь 16, 2014, 16:00 »
ну сценариев всего 3:
1) Изменить цвет.
2) Изменить цвет на default.
3) Вернуть как было.
Как в вашем случае можно выполнить 3 сценарий без Ok-Cancel?
PS как было цвет != default
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Редактирование preferences (цвет окон)
«
Ответ #6 :
Сентябрь 16, 2014, 16:22 »
Цитата: Bepec от Сентябрь 16, 2014, 16:00
Как в вашем случае можно выполнить 3 сценарий без Ok-Cancel?
А он обязательно нужен?
Посмотри на современные интерфейсы - Ok-Cancel - это уже анахронизм)
PS. похоже есть непонимание.
Я пытаюсь сказать, что если есть Ok/Cancel, то применять настройки сразу по их изменению нельзя.
Делать это нужно либо по OK, либо по Apply.
Если требуется сразу, то от Ok/Cancel нужно отказываться.
«
Последнее редактирование: Сентябрь 16, 2014, 16:28 от GreatSnake
»
Записан
Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
Re: Редактирование preferences (цвет окон)
«
Ответ #7 :
Сентябрь 16, 2014, 16:57 »
Это же предпросмотр. Удобно и нет нужды применять изменения. Посмотрел 10 вариантов, выбрал/отказался от одного.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Редактирование preferences (цвет окон)
«
Ответ #8 :
Сентябрь 16, 2014, 17:14 »
Цитата: Bepec от Сентябрь 16, 2014, 16:57
Это же предпросмотр. Удобно и нет нужды применять изменения. Посмотрел 10 вариантов, выбрал/отказался от одного.
Это называется кривой GUI, т.к. получаем неоднозначное поведение.
Записан
Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Редактирование preferences (цвет окон)
«
Ответ #9 :
Сентябрь 16, 2014, 17:15 »
Цитата: GreatSnake от Сентябрь 16, 2014, 16:22
Я пытаюсь сказать, что если есть Ok/Cancel, то применять настройки сразу по их изменению нельзя.
Я понял, так и сделано для всех остальных настроек. Но с цветом тот же подход очень неудобен - может понадобиться масса "подкруток", не пере-открывать же диалог всякий раз (точнее даже 2 диалога, второй по нажатию ColorBox)
Записан
Bepec
Гость
Re: Редактирование preferences (цвет окон)
«
Ответ #10 :
Сентябрь 16, 2014, 17:34 »
Неоднозначное - это как? Все диалоги неоднозначны. У них как минимум 2 значения
Мб не тот термин написали?
В принципе можно разве что заменить названия кнопок, вместо безликих ok cancel на что-нибудь более подходящее.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Редактирование preferences (цвет окон)
«
Ответ #11 :
Сентябрь 16, 2014, 17:39 »
Цитата: Bepec от Сентябрь 16, 2014, 17:34
Неоднозначное - это как?
Именно неоднозначное, т.к. одни применяются сразу, а другие по Ok.
Цитировать
Все диалоги неоднозначны.
С чего это вдруг
Если Ok/Cancel то либо выбор применяется либо нет. Друго быть не должно.
«
Последнее редактирование: Сентябрь 16, 2014, 17:41 от GreatSnake
»
Записан
Qt 5.11/4.8.7 (X11/Win)
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...