| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Widget на Widget стили |
| Автор: asd 8.12.2009, 13:25 | ||||||||
| День добрый прошу объяснить, в чём кроется ошибка. Суть: пишу код
получаю картинку: http://www.radikal.ru теперь пишу такой код: main.cpp
widget.cpp
widget.h
получаю картинку: http://www.radikal.ru Я ожидал, что будет синий квадрат на w_base размером 100x100 а на нём красный текст. Почему стиль установился только для QLabel? |
| Автор: SABROG 8.12.2009, 17:47 |
| Создавал в QtCreator'e своим способом, всё работает (Qt 4.6.0). |
| Автор: asd 9.12.2009, 10:34 |
| У вас Widget родительское окно, а QWidget дочернее. У меня так тоже всё нормально. А вот наоборот не получается. QT 4.5.0 сейчас 4.6 качну, посмотрю. 4.6 то же что и на скриншотах в 1-ом посте |
| Автор: asd 9.12.2009, 11:26 |
| В аттаче проект. Я совсем не понимаю, почему так происходит при смене родительского окна(строки 8,9 в main.cpp). Кстати, если вместо class Widget : public QWidget сделать так: class Widget : public QFrame то всё отображается так, как я ожидаю. |
| Автор: SABROG 9.12.2009, 11:29 | ||
Щас посмотрю... |
| Автор: SABROG 9.12.2009, 12:11 | ||||
| Посмотрел. тут список http://doc.qt.nokia.com/4.6/stylesheet-reference.html, которые поддерживают style sheet'ы. Изначально сам QWidget не поддерживает стили, пока ты не добавишь ему эту возможность. Как и написано в документации надо переопределить paintEvent и добавить следующие строки:
Если посмотреть исходники Qt, то видно, что сам QWidget даже себя и не отрисовывает никак:
|
| Автор: asd 9.12.2009, 12:52 |
| Спасибо большое, работает. |