Russian Qt Forum

Qt => QSS => Тема начата: Flakes от Ноябрь 09, 2009, 00:32



Название: Не устанавливается StyleSheet на наследуемый виджет
Отправлено: Flakes от Ноябрь 09, 2009, 00:32
Наследую QTableView и в конструкторе делаю следующее:
Код
C++ (Qt)
MyTableView::MyTableView(QWidget *parent)
:
QTableView(parent)
{
QTableView::setStyleSheet("QTableView::item::selected{background-color: red;}");
}
 

Не срабатывает почему то..



Название: Re: Не устанавливается StyleSheet на наследуемый виджет
Отправлено: break от Ноябрь 09, 2009, 00:47
Код:
QTreeView::item:selected {
     border: 1px solid #567dbc;
 }

лишнее двоеточие после item?

еще не совсем понятно почему обращаетесь к предку ( QTableView ) для вызова ф-ции setStyleSheet, как бы бросается в глаза - как будто вызов статической ф-ции а не конкретной ф-ции экземпляра класса?


Название: Re: Не устанавливается StyleSheet на наследуемый виджет
Отправлено: Flakes от Ноябрь 09, 2009, 00:56
Цитировать
еще не совсем понятно почему обращаетесь к предку ( QTableView )
Ну я по привычке. Хотя напрямую без предка не катит все равно.

Цитировать
лишнее двоеточие после item?
Два двоеточия или одно, что в дизайнере, что уже на созданном объекте - так или иначе срабатывает. А в конструкторе нет.

Мож баг...


Название: Re: Не устанавливается StyleSheet на наследуемый виджет
Отправлено: gmorgunov от Ноябрь 09, 2009, 10:02
У меня вот так работает:
Код:
MyTableView( QTableView* p = 0) : QTableView(p) 
    {
      this->setAlternatingRowColors ( true );
      this->setStyleSheet("QTableView  {selection-background-color: red;}"); 
    }


Название: Re: Не устанавливается StyleSheet на наследуемый виджет
Отправлено: Flakes от Ноябрь 10, 2009, 00:37
Нашел в чем дело, в дизайнере стоял пустой StyleSheet, пришлось потереть этой кнопкой и все разаботало.
(http://i33.tinypic.com/2ptx85j.png)