• 今晚又失眠了,最近睡眠质量很差啊。

  • QsciScintilla 一个很好用的文本编辑器库

  • 愿逝者安息,愿生者奋发,愿祖国昌盛,致敬英雄

  • 身体是革命的本钱,猿(媛)仔们注意身体呀

  • 所谓”事务“就是指一组 SQL 命令,这些命令要么一起执行,要么都不被执行。

  • 遍历 for 循环时将,将外层写成函数,内层写成回调函数模式。

  • 网站被攻击了烦死了,今天一天都不能访问了

  • wordpress 官网抽风不能升级了!

  • Python 中 input 函数返回的始终是一个字符串。

  • 只有符合整数规范的字符串类数据,才能被 int()强制转换。因此:字符串’3.8’是不能被转换哟

Qt设置控件的自定义属性

学习教程 2019-12-04 15:07:28 2207次浏览 4个评论 扫描二维码
文章目录[隐藏]

前言

Qt开发中可能会遇到如下问题。有两个按钮,绑定相同的槽函数,但是又想在点击的时候区分是哪一个,这个可以怎么做呢?我目前的做法是给控件设置自定义属性(setProperty)。

Qt设置控件的自定义属性

具体做法

// 我先为两个按钮设置自定义 Index 属性,以此来区分是点击的哪一个
ui->btn1->setProperty("Index", "0");
ui->btn2->setProperty("Index", "1");

connect(ui->btn1, &QPushButton::clicked, this, &MainWindow::btnClick);
connect(ui->btn2, &QPushButton::clicked, this, &MainWindow::btnClick);
// 下面是自定义按钮绑定的槽函数
void MainWindow::btnClick()
{
    QPushButton *btnSender = (QPushButton*)sender();
    int btn1Index = btnSender->property("Index").toInt();
    if(btn1Index)
    {
        qDebug() << "btn1";
    }
    else
    {
        qDebug() << "btn0";
    }
}

喜欢 (8)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(4)个小伙伴在吐槽
  1. 看一下qsignalmapper
    dsfdsfds2020-06-22 19:58 回复 Windows 10 | Firefox浏览器 77.0
    • 好的谢谢 :razz:
      h7077748582020-06-25 10:54 回复 Windows 10 | Chrome 80.0.3987.106
  2. qDebug() << "btn0";btn0是?btn2吗?
    1232020-07-23 11:00 回复 Windows 10 | Chrome 55.0.2883.87
    • 不是的,此处我命名太烂了,如果时ui->btn2点击,则获取到的属性值为1,此时打印btn1。
      h7077748582020-07-23 23:44 回复 Windows 10 | Chrome 84.0.4147.89