QT: Eu herdei da QtreeView. Eu herdei de Qstandarditem. Como faço para estilizar os itens?
-
25-09-2019 - |
Pergunta
Minhas habilidades no Google devem estar me falhando hoje.
Eu herdei da QtreeView para criar uma TreeView que armazena um QstandardiTemmodel em vez de um QabStractEmmodel. Também herdei do QSTANDARDITEM para criar uma classe para armazenar meus dados em um item necessário.
Inseri com sucesso meu qstandarditem derivado no QStandardiTemmodel do meu Qtreeview derivado. Agora, o problema é que não consigo descobrir como estilizá -lo. Eu sei que o QtreeView possui um membro do SetStylesheet (QString), mas não consigo fazer funcionar. Pode ser tão simples quanto não estou estilizando o atributo correto. Quaisquer indicadores seriam apreciados. Obrigado.
Para maior clareza, aqui estão minha classe defs.
class SurveyTreeItem : public QStandardItem { public: SurveyTreeItem(); SurveyTreeItem( const QString & text ); ~SurveyTreeItem(); }; class StandardItemModelTreeView : public QTreeView { public: StandardItemModelTreeView(QWidget* parent = 0); ~StandardItemModelTreeView(); QStandardItemModel* getStandardItemModel(); };
Eu tentei as seguintes folhas de estilo:
StandardTreeView::Item { font: 87 12pt 'Arial Black'; } StandardTreeView::QStandardItem { font: 87 12pt 'Arial Black'; } QTreeView::QStandardItem { font: 87 12pt 'Arial Black'; } QTreeView::Item { font: 87 12pt 'Arial Black'; } QTreeView::SurveyTreeItem { font: 87 12pt 'Arial Black'; } StandardTreeView::SurveyTreeItem { font: 87 12pt 'Arial Black'; }
Solução
Você quase teve qtreeview :: item deve ser o único. marca páginas Referência de folhas de estilo QT. Essa seção inteira é uma leitura muito boa se você estiver fazendo esse tipo de coisa
A fonte do conteúdo de um QTreeView
deve ser estilizado através do QTreeview
por si só, por exemplo QTreeview {font-size: 20pt;}
e não através do estilo do item