用以实现一个简单的qq列表栏的功能
1.新建一个无ui界面的工程。其基类为dialog对话框类
2.代码实现
dialog.h
添加控件头文件
#include <QTreeWidget>
#include <QTreeWidgetItem>
Dialog类中添加私有控件声明以及私有槽定义
private slots:
void item_DbliClicked(QTreeWidgetItem* item,int column); //定义一个槽函数
private:
QTreeWidget * tree;
dialog.cpp
在槽函数编写
#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);
}
3.效果展示