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 条评论
登录 后参与评论

相关文章

来自专栏我爱编程

PyCharm

1444
来自专栏青枫的专栏

NetBeans的(默认)快捷键

352
来自专栏聊聊技术

原 数据结构-散列表(Hash Table

3349
来自专栏小樱的经验随笔

Codeforces 777C Alyona and Spreadsheet

C. Alyona and Spreadsheet time limit per test:1 second memory limit per test:256...

36713
来自专栏ml

hdu----(4301)Divide Chocolate(状态打表)

多校综合排名前25名的学校请发送邮件到HDUACM@QQ.COM,告知转账信息(支付宝或者卡号) Divide Chocolate Time Lim...

3179
来自专栏算法修养

PAT 甲级 1024 Palindromic Number

1024. Palindromic Number (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 ...

2986
来自专栏Java成神之路

[转]Eclipse快捷键_01_常用快捷键汇总

Shift+Alt+L:  自动补全等号左边对象 。(用鼠标选中这一行,然后按组合键Shift+Alt+L,在弹出的对话框中点击OK,或者可以修改变量名, 实际...

963
来自专栏ml

HDUOJ-------(1211)RSA

RSA Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/...

3419
来自专栏别先生

Idea的快捷键,瞎摸索,开心就好,哈哈哈

前言:如果你有强迫症,换了一个编辑器,最痛苦莫过于快捷键,不顺手了。这里自己瞎摸索的快捷键,贴一下,这里主要以实际应用为主,因为大量介绍的网上已经很多很多,S...

2525
来自专栏用户2442861的专栏

PyCharm常用快捷键

Ctrl + NumPad+/- 展开或者收缩代码块 Ctrl + Shift + NumPad+ 展开所有的代码块 Ctrl + Shift + NumPa...

561

扫码关注云+社区