2012-04-10 6 views

Antwort

0
#include <QTreeWidget> 
#include <QTreeWidgetItem> 
#include <QHeaderView> 
#include <QPushButton> 


class Header 
    : public QHeaderView 
{ 
public: 
    Header(QWidget* parent) 
     : QHeaderView(Qt::Horizontal, parent) 
     , m_button(new QPushButton("Button", this)) 
    { 
    } 

private: 
    QPushButton* m_button; 
}; 

class TreeWidget 
    : public QTreeWidget 
{ 
    Q_OBJECT 
public: 
    TreeWidget() 
     : QTreeWidget(0) 
    { 
     QTreeWidgetItem* item0 = new QTreeWidgetItem(QStringList("Item 0")); 
     QTreeWidgetItem* item1 = new QTreeWidgetItem(QStringList("Item 1")); 
     addTopLevelItem(item0); 
     addTopLevelItem(item1); 
     createHeader(); 
    } 

private: 
    void createHeader() 
    { 
     m_header = new Header(this); 
     setHeader(m_header); 
    } 

private: 
    Header* m_header; 

}; 

int main(int c, char** v) 
{ 
    QApplication a(c, v); 

    TreeWidget* tw = new TreeWidget(); 
    tw->show(); 

    return a.exec(); 
} 


//QTreeWidget header is an "stand alone" widget - QHeaderView, so you can set the custom implementation of it. 
+0

Vielen Dank, aber ich habe noch eine Frage. Wie zeige ich den QPushButton * m_button in der Kopfzeile, so dass wir die Schaltfläche auf der Benutzeroberfläche sehen können? – Nick

+0

Durch diesen Code ist es bereits sichtbar. Hast du das gepostete Beispiel versucht? Versuch es bitte. – milyaaf

+0

Ja, ich habe es versucht und es ist Arbeit.Vielen Dank! – Nick

Verwandte Themen