Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: lit-uriy от Июня 03, 2010, 16:21



Название: Отличаются стили в дизайнере и в скомпилированной программе
Отправлено: lit-uriy от Июня 03, 2010, 16:21
Сделал в дизайнере виджет стилизированный с помощью таблиц стилей при предпросмотре выглядит так:
(Вложение: well_designer.png)
однако скомпилированная программа выглядит так:
(Вложение: well_runtime.png)
Т.е. окантовка отсутствует.

Стиль наложен на экземпляр класса QFrame. Выглядит так:
Код
CSS
.QFrame {
border-color: rgb(126, 126, 126);
border-width: 2px;
border-style: solid;
border-radius: 4px;
}
точка в начале предотвращает наложение стиля на наследников класса QFrame (т.е. QLable)

Qt 4.4.3
В чём может быть дело?

П.С.
Пробовал собирать  4.5 ... 4.7. всё тоже - окантовки нет.


Название: Re: Отличаются стили в дизайнере и в скомпилированной программе
Отправлено: kdm от Июня 04, 2010, 10:51
Столкнулся с той же проблеммой. В чем дело, так и не разобрался. Сделал свой виждет TClip наследованный от QFrame, в котором разместил все элементы управления, применил стили "TClip { border-color..." (стили как раз применяются только элементу TClip) и добавил его в layout главного виджета, получилось так... (большая синяя штука со светлосиней рамкой)
(что про точку упомянул спасибо, а то я кое-где мучался, не знал, как сделать)


Название: Re: Отличаются стили в дизайнере и в скомпилированной программе
Отправлено: lit-uriy от Июня 04, 2010, 16:43
сделал по другому, наложил стиль на виджет в дизайнере:
Код
CSS
MyClass {
border-color: rgb(126, 126, 126);
border-width: 2px;
border-style: solid;
border-radius: 4px;
}
 
где MyClass - objectName в дизайнере. А в коде соответствует имени класса моего виджета (используется множественное наследование от QFrame  и ui).
Теперь в дизайнере нет окантовки, а во время выполнения программы есть.

Т.е. стиль всё таки применяется к самому виджету, почему же первый вариант не работает во время выполнения. Вообще ничего не понятно.