首页 > 其他分享 >qt自定义槽函数

qt自定义槽函数

时间:2023-03-13 19:45:28浏览次数:46  
标签:qt 自定义 MyLabel 函数 mySlot customSignal QLabel

  1. 自定义一个类:
    如果你想在 QLabel 中使用自定义的槽函数,可以按照以下步骤进行操作:

    1. 创建一个类,例如 MyLabel,继承自 QLabel

    2. MyLabel 类中声明一个槽函数,例如 mySlot()

    3. 在构造函数中连接信号和槽函数,例如:

    connect(this, &MyLabel::customSignal, this, &MyLabel::mySlot);
    

    这里假设 MyLabel 类中有一个名为 customSignal 的信号需要连接到 mySlot 槽函数。

    1. mySlot 槽函数中完成你自定义的操作。

    下面是示例代码:

    class MyLabel : public QLabel
    {
    	Q_OBJECT
    
    public:
    	explicit MyLabel(QWidget *parent = nullptr) : QLabel(parent)
    	{
    		connect(this, &MyLabel::customSignal, this, &MyLabel::mySlot);
    	}
    
    public slots:
    	void mySlot()
    	{
    		// 在这里编写自己的逻辑
    	}
    
    signals:
    	void customSignal();
    
    };
    

    在使用 MyLabel 时,可以通过调用 emit customSignal() 来触发 customSignal 信号,从而间接地调用槽函数 mySlot

  2. 使用lambda表达式:
    如果你只想使用自定义的槽函数,而不需要重写 QLabel 中其他的方法或信号,也可以通过在 QLabel 实例中使用 lambda 函数来连接信号和槽函数,而无需创建新的子类。

    例如,你可以使用以下代码连接 QLabelclicked 信号到自定义的槽函数中:

    QLabel* label = new QLabel("Hello World!");
    
    connect(label, &QLabel::clicked, [=]() {
    	// 自定义的逻辑
    });
    

    上述代码中,我们使用了 lambda 表达式定义一个匿名函数,该函数作为槽函数与 QLabelclicked 信号连接。当 QLabel 被点击时,该匿名函数将被调用执行。

    使用 lambda 表达式连接信号和槽函数相比于继承 QLabel 创建新的子类,更加简单直接,你可以根据需要选择使用这种方式还是继承创建自定义类的方式。

标签:qt,自定义,MyLabel,函数,mySlot,customSignal,QLabel
From: https://www.cnblogs.com/FrostyForest/p/17212566.html

相关文章

  • Hive中的高级函数
    高级函数1.炸裂函数UDTF   通常是将数组或者集合中或者结构体(涉及到数据类型-------复杂数据类型)中的元素单个输出特点:接收一行数据,输出一行或多行数据2.窗口函......
  • Qt实践项目:仿Everything软件实现一个QtEverything
    ⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生:man_student:。如果觉得本文能帮到您,麻烦点个赞......
  • js实用函数
    1.批量设置元素属性,代码将所有视频音频图片设置属性,添加控制按钮,设定宽度不超过屏幕setAttr点击查看代码letmedias=[];lettagAttr={'video':{'width':......
  • 《VS 找不到QT的标准头文件》
    使用VS打开一个别人的工程,发现找不到QT相关的头文件。解决方法:  选择OpenQtprojectFile。加入对应工程中的QT的工程就可以了。......
  • js技术之“自定义包含方案”
    调用//用于判断包含functiondiaoyong(arr,str){//初始化varsizes=['L','XL','S','M'];for(vari=0;i<sizes.length;i++){vars......
  • oracle nvl,nvl2, nullif,以及类型强转函数cast
     参考博客 https://www.cnblogs.com/xielong/p/9285147.html SELECT0ASt1,1ASt2,1.123456ASt3,NULLASt4,round((1234.123456-null)*100/nvl(0.1,......
  • Qt 利用滚动条分页显示
    Qt利用滚动条分页显示问题:qt控件加载大量数据时初始化时间很长,界面比较卡顿。如QCombobox,QTableView;解决:这些控件都有滚动条,可以利用滚动条进行分页显示。一开始......
  • 父类子类中的同名函数
    同名函数若子类中有与父类同名的函数,则在子类中会屏蔽掉从父类继承而来的同名函数若想在子类中调用被屏蔽掉的父类同名函数,则需要加上作用域:son.myParent::print();直......
  • javaweb审计/函数
    statement.executeQuery(sql);lombok模块可以自动生成setter/getter/tostring等方法SQL注入可以首先找到所有包含sql语句的点,随后观察传参类型是否是sring类型,只有当......
  • QT 获取到系统屏幕的尺寸,宽度和高度
      我的代码需要获取到系统屏幕宽度和高度m_graphicspixmapitem->setPixmap(QPixmap("map.png").scaled(QSize(QApplication::primaryScreen()->geometry().width(),......