2012-04-10 2 views

답변

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

대단히 감사합니다.하지만 여전히 질문이 있습니다. 머리글에 QPushButton * m_button을 표시하여 UI의 단추를 볼 수 있습니까? – Nick

+0

이 코드로 '이미 볼 수 있습니다. 게시 된 예제를 사용해 보셨습니까? 시도해보십시오. – milyaaf

+0

예, 시도해 보았습니다. 작동합니다. 대단히 감사합니다! – Nick

관련 문제