添加控件头文件
#include <QTreeWidget> #include <QTreeWidgetItem>Dialog类中添加私有控件声明以及私有槽定义
private slots: void item_DbliClicked(QTreeWidgetItem* item,int column); //定义一个槽函数 private: QTreeWidget * tree;在槽函数编写
#include "dialog.h" #include <QList> #include <QIcon> #include <QMessageBox> Dialog::Dialog(QWidget *parent) : QDialog(parent) { tree = new QTreeWidget(this); //设置QTreeWidget的列数 tree->setColumnCount(1); //设置QTreeWidget标题yincagn隐藏 tree->setHeaderHidden(true); //创建QTreeWidget的“朋友”节点,父节点是true QTreeWidgetItem * Friend = new QTreeWidgetItem(tree, QStringList(QString("朋友"))); //给Friend添加一个子节点frd QTreeWidgetItem * frd = new QTreeWidgetItem(Friend); frd->setText(0,"老张"); frd->setIcon(0,QIcon(tr(":/imgns/animal/pig.ico"))); //创建名叫“同学”节点 QTreeWidgetItem * ClassMate = new QTreeWidgetItem(tree, QStringList(QString("同学"))); //Fly是ClassMate的子节点 QTreeWidgetItem * Fly = new QTreeWidgetItem(QStringList(QString("陈陈陈"))); Fly->setIcon(0,QIcon(tr(":/imgns/animal/tiger.ico"))); //创建子节点的另一种方法 ClassMate->addChild(Fly); QTreeWidgetItem * Strange = new QTreeWidgetItem(true); Strange->setText(0,"陌生人"); tree->addTopLevelItem(ClassMate); tree->addTopLevelItem(Strange); //展开QTreeWidget的所有节点 tree->expandAll(); //响应鼠标在QTreeWidget节点上的双击事件 connect(tree,SIGNAL(item_DbliClicked(QTreeWidgetItem * int)), this,SLOT(item_DbliClicked(QTreeWidgetItem * int))); this->setWindowTitle("树状控件"); this->resize(225,192); tree->resize(230,200); } Dialog::~Dialog() { } //槽函数实现 void Dialog::item_DbliClicked(QTreeWidgetItem * item,int column) { QString str = item->text(column); QMessageBox::warning(this,"响应双击事件","你双击了\'"+str+"\'", QMessageBox::Yes | QMessageBox::No,QMessageBox::Yes); }