ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-06-09 18:07:44  阅读:129  来源: 互联网

标签:MyTteeWidget TreeWidgetParent Qt QTreeWidgetItem 点击 UserRole QTreeWidget include


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有