QT treewidget 双击信号与自定义槽】

文章展示了如何在Qt环境中创建一个Widget类,定义了一个槽函数selectHero,用于处理TreeWidget中的项被双击时的事件。在Widget.cpp中实现了槽函数,当用户双击树形视图的特定项时,会根据项的文字内容执行相应的操作,例如识别并响应张飞这一项。
摘要由CSDN通过智能技术生成

Widget.h 其中selectHero为槽函数 注意里面的形参,不需要增加形参名 只需要类型

 

namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
public slots:
    void selectHero(QTreeWidgetItem*,int);

private:
    Ui::Widget *ui;
};

Widget.cpp 在实现我们的槽函数是 才需要添加我们的形参名 ,形参名随意。

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //treewidget数控件使用

    //设置水平头
    ui->treeWidget->setHeaderLabels(QStringList()<<"英雄杀");

    //创建顶层节点item
    QTreeWidgetItem *gitem = new QTreeWidgetItem(QStringList()<<"女性英雄");
    QTreeWidgetItem *mitem = new QTreeWidgetItem(QStringList()<<"男性英雄");
    //将顶层节点item加入treewidget中(根节点)
    ui->treeWidget->addTopLevelItem(mitem);
    ui->treeWidget->addTopLevelItem(gitem);

    //追加子节点
    QTreeWidgetItem *dcitem = new QTreeWidgetItem(QStringList()<<"貂蝉");
    QTreeWidgetItem *xqitem = new QTreeWidgetItem(QStringList()<<"小乔");
    //将子节点添加到根节点中 (女性英雄、男性英雄下)
    gitem->addChild(dcitem);
    gitem->addChild(xqitem);

    QTreeWidgetItem *zfitem = new QTreeWidgetItem(QStringList()<<"张飞");
    QTreeWidgetItem *lbitem = new QTreeWidgetItem(QStringList()<<"吕布");
    mitem->addChild(zfitem);
    mitem->addChild(lbitem);

    connect(ui->treeWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(selectHero(QTreeWidgetItem*,int)));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::selectHero(QTreeWidgetItem *item, int a)
{
    QString zf="张飞" ;
    if(item->text(a) == zf)
    {
        qDebug()<<"张飞"<<endl;
    }
}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值