嵌入式Qt【自定义信号槽】
本文最后更新于 117 天前,其中的信息可能已经有所发展或是发生改变。

我们需要自定义给信号槽,首先要知道怎么才能实现信号槽模板

发送者->信号->接收者->槽函数

我们首先要创建自定义的发送者和接收者(创建两个类)

设置类名、类的基类(选择QObject)、文件名称、地址。

自定义信号

创建两个对应的类之后,我们知道信号属于发送者,槽函数属于接收者。我们在接收者类中,声明信号。

声明信号

在发送者(sender)类的.h文件中,声明信号函数。信号函数的关键字为“signals”,声明信号函数。

自定义槽

自定义信号后,需要自定义槽函数。

声明定义槽函数

在接收者(receiver)类的.h文件中,声明槽函数,信号函数的关键字为“slots”,槽函数关键字需要用“public、private、protected”三个关键声明。

信号函数可以不用定义,但是槽函数必须定义。可以右键函数名,选择“Refactor”在对应的.cpp文件中添加定义。

实例化自定义对象

创建之后,我们在mainwindow的.h文件中引用两个类的头文件,并声明类名,在MainWindow类中创建两个类的对象(常设置为私有(private))。

在mainwindow.cpp中实例化两个对象,在构造函数中进行。

连接信号槽

使用connect函数,connect(发送者,信号函数,接收者,槽函数)。

补充

一个信号可以连接多个槽。

connect(pushButton, SIGNAL(sendMessages), student, SLOT(comBackToClass));
connect(pushButton, SIGNAL(sendMessages), this, SLOT(hide)) ;

很好理解发射一枪可以打中多个目标,一个信号产生会引发多个槽函数。

多个信号可以连接一个槽

connect(pushButton, SIGNAL(sendMessages1), this, SLOT(hide));
connect(pushButton, SIGNAL(sendMessages2), this, SLOT(hide)) ;

同样,我们可以通过按钮1或者按钮2被按下时候执行关闭页面的操作,那么就是多个信号连接同一个槽

一个信号可以连接另外一个信号

connect(pushButton, SIGNAL(sendMessages2), this, SIGNAL(iconSizeChanged())) ;

如果您觉得这篇文章不错,且手里较为宽裕,可以支持一下博主,一分也是缘分😊
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇