Название: помогите разобратся со стилями внутри QTabWidget Отправлено: slava_d200 от Декабрь 26, 2011, 19:53 Суть вопроса.
есть файл со стилями. есть собственный класс от QPuthButton. если внутри QStacketWidget поместить мою кнопку + QTabWidget (и во внутрь еще положить мою кнопку) то стил кнопки внутри QTabWidget не применяется (кнопка даже не видна) а в QStacketWidget - все нормально. Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: lighting от Декабрь 27, 2011, 10:24 код-бы выложил, а то так и не дождешься ответа.
Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: slava_d200 от Декабрь 27, 2011, 16:37 файл стиля:
CButton { border: 1px solid #000000; border-radius: 10px; background-color: #cfcccc; font: bold 20px; } класс: class CButton: public QPushButton { Q_OBJECT public: explicit CButton(QWidget *parent = 0,const QString& str = "") { this->setText(str); } }; далее все делается в конструкторе и переопределяются QPushButton на CButton. все тривиально просто - но не получается почемуто. если внутри QStacketWidget поместить мою кнопку + QTabWidget (и во внутрь QTabWidget еще положить мою кнопку) то стил кнопки внутри QTabWidget не применяется (кнопка даже не видна) а в QStacketWidget - все нормально. так подключаю стили: MainWindow w; QFile styleFile("Istyle.qss"); if( styleFile.open(QFile::ReadOnly) ) { QString styleSheet = QLatin1String(styleFile.readAll()); w.setStyleSheet(styleSheet); } код-бы выложил, а то так и не дождешься ответа. Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: andrew.k от Декабрь 27, 2011, 17:59 Цитировать если внутри QStacketWidget поместить мою кнопку + QTabWidget (и во внутрь QTabWidget еще положить мою кнопку) Не понял вообще это описание.то стил кнопки внутри QTabWidget не применяется (кнопка даже не видна) а в QStacketWidget - все нормально. Стили вроде как наследуются от родителя. Где вызов родительского конструктора? Код Может в этом проблема. Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: xokc от Декабрь 27, 2011, 18:25 В соотвествии с http://doc.qt.nokia.com/4.7/qstyle.html#developing-style-aware-custom-widgets
добавь метод Код
Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: andrew.k от Декабрь 27, 2011, 18:46 Он же наследуется от кнопки, а не сам рисует виджет.
Не пойму зачем добавлять? Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: slava_d200 от Декабрь 27, 2011, 18:50 после добавдения данного кода кнопки вообще перестали отображатся, даже там где раньше отображались
В соотвествии с http://doc.qt.nokia.com/4.7/qstyle.html#developing-style-aware-custom-widgets добавь метод Код
Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: slava_d200 от Декабрь 27, 2011, 18:51 Действительно именно в этом была проблема. СПАСИБО.
Цитировать если внутри QStacketWidget поместить мою кнопку + QTabWidget (и во внутрь QTabWidget еще положить мою кнопку) Не понял вообще это описание.то стил кнопки внутри QTabWidget не применяется (кнопка даже не видна) а в QStacketWidget - все нормально. Стили вроде как наследуются от родителя. Где вызов родительского конструктора? Код Может в этом проблема. Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: slava_d200 от Декабрь 27, 2011, 18:56 итересно тока почему в одном варианте ошибочный конструктор работал а в другом варианте нет.
повторюсь: открыл редактор форм. в эту форму положил QStacketWidget, во внутрь QStacketWidget разместил CButton(1) и QTabWidget, во внутрь QTabWidget разместил CButton(2). так вот : CButton(1) - корректно отображалась CButton(2) - вообще не отображалась Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: andrew.k от Декабрь 27, 2011, 18:57 Потому что один из них становится родителем кнопки при добавлении, а второй нет.
Цитировать int QStackedWidget::addWidget ( QWidget * widget ) Appends the given widget to the QStackedWidget and returns the index position. Ownership of widget is passed on to the QStackedWidget. Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: slava_d200 от Декабрь 27, 2011, 19:02 так а разве QTabWidget в тоже время не является дочкой и не принимает стиль основной формы ?
сорри если тупой вопрос. Потому что один из них становится родителем кнопки при добавлении, а второй нет. Цитировать int QStackedWidget::addWidget ( QWidget * widget ) Appends the given widget to the QStackedWidget and returns the index position. Ownership of widget is passed on to the QStackedWidget. Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: andrew.k от Декабрь 27, 2011, 19:17 так а разве QTabWidget в тоже время не является дочкой и не принимает стиль основной формы ? Потому что ты не вызвал конструктор QPushButton, поэтому указатель на родителя переданный в CButton никуда не сохранился.сорри если тупой вопрос. Потому что один из них становится родителем кнопки при добавлении, а второй нет. Цитировать int QStackedWidget::addWidget ( QWidget * widget ) Appends the given widget to the QStackedWidget and returns the index position. Ownership of widget is passed on to the QStackedWidget. Все экземпляры твоего класса не имели бы родителя. А стэквиджет на твое счастье взял ownership и поэтому все(почти) стало хорошо. Название: Re: помогите разобратся со стилями внутри QTabWidget Отправлено: slava_d200 от Декабрь 27, 2011, 19:21 СПАСИБО за помощь! :)
|