Qt信号与槽自动关联机制

参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407

参考链接2:http://blog.csdn.net/memory_exception/article/details/50953005

信号与槽可以通过使用手写代码显式的实现关联 ,也可以运用 QMetaObject 类规定的槽 函数命名范式来实现自动关联。

  1. 显示关联

class MyWidget : public QWidget

{

Q_OBJECT

public:

MyWidget();

signals:

void buttonClicked();

private:

QPushButton *myButton;

};

MyWidget::MyWidget()

{

myButton = new QPushButton(this);

connect(myButton, SIGNAL(clicked()),

this, SIGNAL(buttonClicked())); }

  1. 自动关联
    • 为了实现槽函数自动进行关联,对于Qt窗口部件已经提供的信号,可按照以下规范命名:  void on_<窗口部件名称>_<信号名称>_(<信号参数>);
    • 看如下实例:

  • #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QString a = "calculate"; setWindowTitle(tr("%1").arg(a)); //connect(ui->calButton,SIGNAL(clicked()),this,SLOT(on_calButton_clicked())); //QMetaObject::connectSlotsByName(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_calButton_clicked() { int a = (ui->firstLineEdit->text()).toInt() + (ui->secondLineEdit->text()).toInt(); ui->resultLineEdit->setText(tr("%1").arg(a)); }
  • 若未能自动关联,需要显示调用connectSlotByName(),调用方法如上注释处,详细请参照官方帮助文档:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏全栈之路

关于Canvas保存为图片

但是在webapp该方法是不行的,默认是不支持的。一种方法是在android的java代码写js接口,而一个纯webapp,确是很难做到(其实也不是),只不过找...

1081
来自专栏用户2442861的专栏

PyQt4 - (2) 第一印象 (pyqt的入门)

http://www.blogjava.net/glorywine/archive/2008/06/21/206729.html

521
来自专栏用户2442861的专栏

Qt学习之路_5(Qt TCP的初步使用)

http://www.cnblogs.com/tornadomeet/archive/2012/06/30/2571001.html

1651
来自专栏向治洪

iOS Hybrid 框架

前言 Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”...

3148
来自专栏向治洪

手把手教你从Core Data迁移到Realm

前言 Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”...

2197
来自专栏用户2442861的专栏

在 PyQt4 中的菜单和工具栏¶

http://www.cppblog.com/mirguest/archive/2012/02/05/164982.html

602
来自专栏我有一个梦想

UE4新手之编程指南

  虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程。 新的游戏类、Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写...

2848
来自专栏用户2442861的专栏

PyQt4 - 关闭最小化问题

在这个部分,我们开始学习一些PyQt4的基本功能,解释会比较详细,就像教孩子说话一样。 最简单的example     下面的示例会非常的简单,仅仅显示...

1381
来自专栏SpringBoot

Jquery实现checkbox全选/取消权限

1264
来自专栏比原链

剥开比原看代码16:比原是如何通过/list-transactions显示交易信息的

Gitee地址:https://gitee.com/BytomBlockchain/bytom

371

扫码关注云+社区