Настройка цвета и размера виджетов |
Здравствуйте, гость ( Вход | Регистрация )
Настройка цвета и размера виджетов |
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 также с кнопками внутри, требуется чтобы при изменении размеров окна кнопки также увеличивались как по горизонтали, так и по вертикали, но не более какого-то определенного размера. В какой раздел документации смотреть, чтобы понять как реализовать это ? |
|
|
kwisp |
25.5.2009, 15:41
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
eXtremal,
1. QWidget::setPalette(const QPalette&) посомтри paintEvent(QPaintEvent*) 2. sizePolicy expanded Если не ошибаюсь и set(Minimum\Maximum)Size(const QSize&) |
|
|
eXtremal |
25.5.2009, 20:31
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 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, если использовать стиль висты палитра игнорируется. Как это обойти не придумали пока ещё ? |
|
|
Текстовая версия | Сейчас: 28.12.2024, 9:38 |