//mytreewidget.h #ifndef MYTREEWIDGET_H #define MYTREEWIDGET_H #include <QWidget> class QTreeWidget; class QTreeWidgetItem; class MyTreeWidget : public QWidget { Q_OBJECT public: explicit MyTreeWidget(QWidget *parent = 0); signals: public slots: void itemDoubleClickedSlot(QTreeWidgetItem* item,int column); private: QTreeWidget *tree; }; #endif // MYTREEWIDGET_H
//mytreewidget.cpp #include "mytreewidget.h" #include <QTreeWidget> #include <QIcon> #include <QList> #include <QMessageBox> MyTreeWidget::MyTreeWidget(QWidget *parent) : QWidget(parent) { tree = new QTreeWidget(this); //设置QTreeWidget的列数 tree->setColumnCount(1); //设置QTreeWidget标题头隐藏 tree->setHeaderHidden(true); //创建QTreeWidget的头节点,父节点是tree QTreeWidgetItem *Friend = new QTreeWidgetItem(tree, QStringList(QString(tr("好朋友")))); //给Friend节点增加一个子节点 QTreeWidgetItem *hahaya = new QTreeWidgetItem(Friend); hahaya->setText(0, tr("hahaya")); hahaya->setIcon(0, QIcon(tr("hahaya.png"))); //QTreeWidget添加节点的另一种方法 QTreeWidgetItem *ClassMate = new QTreeWidgetItem(tree, QStringList(QString(tr("同学")))); //Fly是ClassMate的子节点 QTreeWidgetItem *Fly = new QTreeWidgetItem(ClassMate, QStringList(QString(tr("fly")))); QTreeWidgetItem *Strange = new QTreeWidgetItem(tree); Strange->setText(0, tr("陌生人")); QList<QTreeWidgetItem*> list; list.append(ClassMate); list.append(Strange); tree->insertTopLevelItems(0, list); //展开QTreeWidget的所有节点 tree->expandAll(); //响应鼠标在QTreeWidget节点上的双击事件 connect(tree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(itemDoubleClickedSlot(QTreeWidgetItem*,int))); this->setWindowTitle(tr("QTreeWidget的使用")); this->resize(200, 500); //设置应用程序的图标 this->setWindowIcon(QIcon("hahaya.png")); } void MyTreeWidget::itemDoubleClickedSlot(QTreeWidgetItem* item,int column) { QMessageBox::warning(this, tr("响应双击事件"), tr("你双击了item"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); }
//main.cpp #include <QApplication> #include <QTextCodec> #include "mytreewidget.h" int main(int argc, char *argv[]) { QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QApplication app(argc, argv); MyTreeWidget window; window.show(); app.exec(); }