其他分享
首页 > 其他分享> > QTreeWidget信号和曹,获取当前点击的节点信息,做出相应的操作

QTreeWidget信号和曹,获取当前点击的节点信息,做出相应的操作

作者:互联网

ps :ui界面的TreeWidget控件被重写的QTreeWidget类给提升了。

1. 重新的QTreeWidget头文件

#pragma once

#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QTreeWidgetItem>
class TreeWidgetParent : public QTreeWidget
{
    //Q_OBJECT

public:
    TreeWidgetParent(QWidget *_parent = nullptr);
    ~TreeWidgetParent();

public:
    void testFunction();
    QTreeWidgetItem* item1;
    QTreeWidgetItem* item2;
    QTreeWidgetItem* item3;
    QTreeWidgetItem* item4;
};

 

2. 重新的QTreeWidgetc源文件

#include "TreeWidgetParent.h"
#include <QtWidgets/QTreeWidgetItem>
#include <QString>

TreeWidgetParent::TreeWidgetParent(QWidget *_parent)
    : QTreeWidget(_parent)
{

    item1 = new QTreeWidgetItem(this);
    item2 = new QTreeWidgetItem(item1);
    item3 = new QTreeWidgetItem(this);
    item4 = new QTreeWidgetItem(item3);

    item1->setText(0, QString::fromLocal8Bit("第一个"));
    item1->setData(0, Qt::UserRole, "1");
     item2->setText(0, QString::fromLocal8Bit("第二个"));
    item2->setData(0, Qt::UserRole, "2");
    item3->setText(0, QString::fromLocal8Bit("第三个"));     
    item3->setData(0, Qt::UserRole, "3");
     item4->setText(0, QString::fromLocal8Bit("第四个"));
    item4->setData(0, Qt::UserRole, "4");

    
}

TreeWidgetParent::~TreeWidgetParent()
{

}

void TreeWidgetParent::testFunction()  
{
    

}

 

 

3. MainWindow头文件

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_MyTteeWidget.h"

class MyTteeWidget : public QMainWindow
{
    Q_OBJECT

public:
    MyTteeWidget(QWidget *parent = Q_NULLPTR);

private slots:
    void getItem(QTreeWidgetItem*, int);   //选中节点后,执行打印相应信息的操作

private:
    Ui::MyTteeWidgetClass ui;
};

 

3. MainWindow源文件

#include "MyTteeWidget.h"
#include <QDebug>
MyTteeWidget::MyTteeWidget(QWidget *parent)
    : QMainWindow(parent)
{
    
    ui.setupUi(this);
    ui.mytree->setHeaderLabel(QString::fromLocal8Bit("模块管理"));

    connect(ui.mytree, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(getItem(QTreeWidgetItem*, int)));
}
void MyTteeWidget::getItem(QTreeWidgetItem* _item, int xx)
{
    //data(0, Qt::UserRole)关键所在,在创建节点的时候也会用到 data(0, Qt::UserRole)
     QString _data = _item->data(0, Qt::UserRole).toString();  
    // qDebug() << QString::fromLocal8Bit("_data = ") << _data << endl;
     QStringList _list = _data.split("-");
     //qDebug() << "_list = " << _list << endl;
     if (_list[0].toInt()==2) {
         qDebug() << QString::fromLocal8Bit("打开音乐界面");
   }
     else if (_list[0].toInt() == 4)
     {
         qDebug() << QString::fromLocal8Bit("打开视频界面");
     }
   
   
}

 

 

效果:

 

 

 

 

标签:MyTteeWidget,TreeWidgetParent,Qt,QTreeWidgetItem,点击,UserRole,QTreeWidget,include
来源: https://www.cnblogs.com/RedWetPlace/p/16360261.html