Настройка цвета и размера виджетов |
Здравствуйте, гость ( Вход | Регистрация )
Настройка цвета и размера виджетов |
eXtremal |
25.5.2009, 14:47
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 25.5.2009 Пользователь №: 770 Спасибо сказали: 0 раз(а) Репутация: 0 |
С Qt столкнулся недавно совсем, поэтому опыта ещё никакого. Есть два вопроса:
1. Требуется динамически изменять цвет кнопки во время работы приложения, в том числе реализовать мерцание этой кнопки.. с реализацией вроде всё ясно(запуск таймера и обработка его сигнала), а вот сам процесс изменение цвета не понятен.. единственное что нашёл это вызов типа setStyleSheet("background-color: green"). Но такой вариант не очень нравится, зачем заставлять Qt разбирать строку, когда было бы проще просто передать нужный цвет в виде RGB ? Ещё где-то видел, что могут быть проблемы со стилями WinXP/Vista, там чтобы изменить цвет придётся менять стиль на классический. Подскажите plz наиболее правильный и простой способ менять цвета виджетов во время выполнения. 2. Есть QGridLayout также с кнопками внутри, требуется чтобы при изменении размеров окна кнопки также увеличивались как по горизонтали, так и по вертикали, но не более какого-то определенного размера. В какой раздел документации смотреть, чтобы понять как реализовать это ? |
|
|
trdm |
25.5.2009, 15:13
Сообщение
#2
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
|
|
|
Litkevich Yuriy |
25.5.2009, 15:26
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А я бы подругому сделал:
Делаю наследника от кнопки, в ней в делаю слот в котором запускаю таймер, в обработчике таймера -- нечётный раз, меняю палитру кнопки на зарание созданную (исходную запоминаю) -- четный раз, меняю палитру кнопки на исходную eXtremal, ПРАВИЛО: Одна проблема/вопрос - одна тема. |
|
|
kwisp |
25.5.2009, 15:41
Сообщение
#4
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
eXtremal,
1. QWidget::setPalette(const QPalette&) посомтри paintEvent(QPaintEvent*) 2. sizePolicy expanded Если не ошибаюсь и set(Minimum\Maximum)Size(const QSize&) |
|
|
trdm |
25.5.2009, 19:09
Сообщение
#5
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
|
|
|
eXtremal |
25.5.2009, 20:31
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 25.5.2009 Пользователь №: 770 Спасибо сказали: 0 раз(а) Репутация: 0 |
eXtremal, 1. QWidget::setPalette(const QPalette&) посомтри paintEvent(QPaintEvent*) 2. sizePolicy expanded Если не ошибаюсь и set(Minimum\Maximum)Size(const QSize&) Пока что с первым вопросом разбираюсь, унаследовался от QPushButton, определил свою функцию paintEvent, из исходников Qt скопировал код разбавив своим, получилось вот так(вариант не окончательный, так эксперименты):
Как и предполагал, работает только с классическим стилем windows, если использовать стиль висты палитра игнорируется. Как это обойти не придумали пока ещё ? |
|
|
kwisp |
25.5.2009, 20:39
Сообщение
#7
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
eXtremal,
воспользуйся поиском по форуму. исходники библиотеки интеренсно смотреть но передирать их думаю не зачем. |
|
|
Текстовая версия | Сейчас: 27.12.2024, 1:21 |