2010-04-09 97 views
1

我的Google技巧今天一定會讓我失望。QT:我從QTreeView繼承。我從QStandardItem繼承。我如何設置項目的風格?

我已經從QTreeView繼承來創建一個存儲QStandardItemModel而不是QAbstractItemModel的TreeView。我也從QStandardItem繼承來創建一個類來存儲我的數據在一個項目中是必要的。

我已經成功地將我的派生QStandardItem插入到我的派生QTreeView的QStandardItemModel中。現在的麻煩是,我無法弄清楚如何設計它。我知道QTreeView有一個setStyleSheet(QString)成員,但我似乎無法得到它的工作。這可能很簡單,因爲我沒有設計正確的屬性。任何指針將不勝感激。謝謝。

爲了清楚起見,這裏是我的類defs。

 
class SurveyTreeItem : public QStandardItem 
{ 
public: 
    SurveyTreeItem(); 
    SurveyTreeItem(const QString & text); 
    ~SurveyTreeItem(); 
}; 

class StandardItemModelTreeView : public QTreeView 
{ 
    public: 

    StandardItemModelTreeView(QWidget* parent = 0); 
    ~StandardItemModelTreeView(); 

    QStandardItemModel* getStandardItemModel(); 
}; 

我已經試過以下樣式表:

 
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'; 
} 
+0

請粘貼你傳遞給'setStyleSheet'的字符串。 – 2010-04-09 19:05:05

+0

@Kaleb,我現在將它粘貼。我最初離開了它,因爲我知道我輸入的內容不起作用。我會展示我嘗試過的一切。 – 2010-04-09 19:09:16

+0

我實際上已經嘗試在設計器中使用父類來對其進行樣式設計,並且我已將所有這些代碼轉換爲QString()中的單行代碼。我不確定我在做什麼錯誤,因爲它似乎適用於我的其他組件(例如QPushButton和QTreeWidget)。 – 2010-04-09 19:15:30

回答

2

你幾乎擁有了QTreeView則::項目應該是一個。書籤Qt Style Sheets Reference。如果你正在做這樣的事情,整個部分是一個很好的閱讀

QTreeView的內容的字體應該通過QTreeview本身, QTreeview {font-size: 20pt;}而不是通過項目的樣式

+0

謝謝。我會稍後再嘗試,然後回覆你。 – 2010-04-10 14:28:13

+0

我試過 - > setStyleSheet(QString(「QTreeView :: Item {font:87 12pt'Arial Black';}」));在StandardTreeView中沒有成功。我也試着讓我的「項目」小寫,就像你列出的。我將細讀一些提示的樣式表參考。 – 2010-04-10 21:49:52

+0

看過樣式表引用後,我試着QTreeView :: item :: text和QTreeView :: item:text和QTreeView :: item.text和QTreeView :: text沒有成功。 – 2010-04-10 21:59:38