qt的信号与槽函数
关联:
bool connect ( const?QObject?*?sender, const?char?*?signal, const QObject * receiver, const char * slot, Qt::ConnectionType?type?= Qt::AutoConnection)
1.一个信号 对应槽函数
connect(&a1,SIGNAL(mysignals()),&b1,SLOT(mySlot()));
2.一个信号 对应多个槽函数
connect(&a1,SIGNAL(mysignals()),&b1,SLOT(mySlot()));
connect(&a1,SIGNAL(mysignals()),&c1,SLOT(mySlotccc()));
connect(&a1,SIGNAL(mysignals()),&d1,SLOT(mySlotcccddd()));
3.多个信号 对应一个槽函数
connect(&a1,SIGNAL(mysignals()),&b1,SLOT(mySlot()));
connect(&b1,SIGNAL(mysignalsb()),&b1,SLOT(mySlot()));
connect(&c1,SIGNAL(mysignalsc()),&b1,SLOT(mySlot()));
4.一个信号 对应一个信号
connect(&c1,SIGNAL(mysignalsc()),&b1,SIGNAL(mysignal()));
注意点:
1.继承 QObject , Q_OBJECT宏
2.public slots:包含了任何信号都可以相连的slots。
protected slots:包含了该类和它的子类的信号才能连接的slots。就是说这些slots只是类的实现的一部分,而不是它和外界的接口。
private slots:包含了只有该类本身的信号可以连接的slots。就是说这个类非常紧密,甚至它的子类都没有获得连接该类中slots的权利。
win.h #ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include<QTimer>
#include<QTime> namespace Ui {
class MainWindow;
} class MainWindow : public QMainWindow
{
Q_OBJECT public:
explicit MainWindow(QWidget *parent = );
~MainWindow(); private:
Ui::MainWindow *ui;
QTime *mytime;
QDate *mydate;
QTimer *mytimer;
public slots:
void mytimes(); }; #endif // MAINWINDOW_H
win.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QTime>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
mytime = new QTime(); mydate = new QDate();
ui->label_2->setText(mydate->currentDate().toString("yyyy/MM/dd"));
mytimer = new QTimer();
connect(mytimer,SIGNAL(timeout()),this,SLOT(mytimes()));
mytimer->start();
} MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::mytimes()
{ ui->label->setText(mytime->currentTime().toString("hh:mm:ss"));
ui->label_2->setText(mydate->currentDate().toString("yyyy/MM/dd")); }
qt的信号与槽函数的更多相关文章
- QT点击"X"按钮,调用closeEvent()函数来实现调用特定事件(附:粗略介绍QT的信号与槽的使用方法)
背景: QT在用户关闭窗口(直接点击"X"键)时,程序一般都需要做一些善后的事情,就我现在的程序来说,既关闭USB.如何实现? 正文: 首先,在对应窗体的".h" ...
- Qt 信号和槽函数
信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性.当某个信号被发射,就需要调用与之相绑定的槽函数.这与Windows下的消息机制类似,消息机制是基于回调函数.一个回调即是一个函数的 ...
- 【QT】无需写connect代码关联信号和槽函数
对于一些简单的事件判别,如点击按钮. 无需写代码关联信号和槽函数. connect(ui->Btnshowhello,SIGNAL(clicked(bool)),this,SLOT(Btnsho ...
- QT信号和槽函数学习笔记
//connect 函数有4个参数 分别是 发送者 信号.接受者 ,槽 //connect(sender,signal,receiver,slot) /* * 信号和槽 * 信号 就是一个普通的函数 ...
- Qt之自定义信号和槽函数
自定义信号和槽函数: 1.类的声明和实现分别放在.h和.cpp文件中: 2.类声明包含Q_OBJECT宏: 3.信号只要声明不要设计其的实现函数 4.发射信号用emit关键字 5.自定义槽的实现与普通 ...
- qt中信号与槽机制
一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不 ...
- QT 的信号与槽
转载: QT 的信号与槽机制介绍 QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 ...
- QT的信号与槽机制介绍
信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗 ...
- Qt 的信号与槽机制介绍(10个要注意的问题)
QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...
随机推荐
- vhost:一种 virtio 高性能的后端驱动实现
什么是 vhost vhost 是 virtio 的一种后端实现方案,在 virtio 简介中,我们已经提到 virtio 是一种半虚拟化的实现方案,需要虚拟机端和主机端都提供驱动才能完成通信,通常, ...
- Caused by: java.sql.SQLException: Couldn't perform the operation getAutoCommit: You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason (see lo
系统启动,一段时间不操作,然后在来操作时,报错如下: Caused by: java.sql.SQLException: Couldn't perform the operation getAutoC ...
- 安卓Acitivity的启动模式
活动的四大启动模式 Ps:除了standar模式外,其他启动模式都要在AndroidManifest.xml中设置 android:lauchMode的值 安卓活动的启动模式(LaunchMode)有 ...
- 修改nopCommerce中的实体
对已有实体增加一个属性(对Category增加一个SomeNewProperty) 最近在研究nopcommerce,这里是对官网上文档的学习 ...
- 邓_ Php·魔术方法
================================================ 1.__tostring() 用于定义输出对象引用时调用 常用于打印一些对象的信息 必须有返回值 ...
- 【开发技术】 B/S、C/S的区别
c/s 客户端----服务器端 可以用譬如vb或vc等语言开发,比如最常用的oicq就是. 需要在客户端安装软件. b/s 浏览器端----服务器端 ...
- hql(Hibernate Query Language)
1.Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate ...
- Freemarker 入门示例
初步学习freemarker ,先做一个简单的HelloWord程序! 新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar, ...
- mybatis用spring的动态数据源实现读写分离
一.环境: 三个mysql数据库.一个master,两个slaver.master写数据,slaver读数据. 二.原理: 借助Spring的 AbstractRoutingDataSource 这个 ...
- Myeclipse 10安装与破解
首先下载Myeclipse 10的压缩包,我这里以10.7版本为例.下载路径分享 链接:https://pan.baidu.com/s/1nxf19S9 密码:rqw4 下载好后解压,解压后进行安装. ...