QT-纯代码控件-QTreeWidget(树状控件)

用以实现一个简单的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.效果展示

在这里插入图片描述
在这里插入图片描述

发布了43 篇原创文章 · 获赞 7 · 访问量 9047

猜你喜欢

转载自blog.csdn.net/qq_41488943/article/details/96433520