QT 如何新增信号和槽

QT 设计器中

1.

选择对象查看器-》对象右键键-》选择改变信号/槽

如下图


2.

弹出 信号/槽 窗口;添加信号和槽 保存




3.动作编辑器,信号槽编辑器,添加信号槽关联


### Qt信号机制的小型练习 以下是基于提供的引用内容以及Qt信号机制的相关知识设计一个小型练习示例。 #### 示例描述 此示例展示了如何通过按钮点击触发信号并连接到相应的函数来完成特定操作。具体来说,当用户按下某个按钮时,程序会显示一条消息或者播放一段语音提示。 --- #### 实现代码 ##### 头文件 `f_ui.h` ```cpp #ifndef F_UI_H #define F_UI_H #include <QMainWindow> #include <QPushButton> #include <QMessageBox> // 新增用于弹窗的消息框类 #include <QTextToSpeech> class F_ui : public QMainWindow { Q_OBJECT public: F_ui(QWidget *parent = nullptr); ~F_ui(); signals: void signal_1(); // 自定义信号 public slots: void showMes(); // 展示消息的函数 void say_mes(); // 播放语音的函数 private: QPushButton *btn1; // 显示消息的按钮 QPushButton *btn2; // 播放语音的按钮 QPushButton *btn3; // 测试自定义信号的按钮 QTextToSpeech *speech; // 文本转语音对象 }; #endif // F_UI_H ``` ##### 源文件 `f_ui.cpp` ```cpp #include "f_ui.h" F_ui::F_ui(QWidget *parent) : QMainWindow(parent), speech(new QTextToSpeech(this)) { // 创建三个按钮 btn1 = new QPushButton("Show Message", this); btn2 = new QPushButton("Say Hello", this); btn3 = new QPushButton("Emit Signal", this); // 设置按钮位置 btn1->setGeometry(50, 50, 150, 30); btn2->setGeometry(50, 100, 150, 30); btn3->setGeometry(50, 150, 150, 30); // 连接信号 QObject::connect(btn1, &QPushButton::clicked, this, &F_ui::showMes); // 点击按钮1调用showMes() QObject::connect(btn2, &QPushButton::clicked, this, &F_ui::say_mes); // 点击按钮2调用say_mes() QObject::connect(btn3, &QPushButton::clicked, this, &F_ui::signal_1); // 点击按钮3发出signal_1() } F_ui::~F_ui() {} void F_ui::showMes() { QMessageBox::information(this, "Message Box", "You clicked the button!"); // 弹出消息框 } void F_ui::say_mes() { speech->say("Hello! Welcome to my application."); // 使用TTS朗读文字 } ``` --- #### 功能解释 1. **`QPushButton` 的使用** 此处创建了三个按钮 (`btn1`, `btn2`, `btn3`) 并设置了它们的位置[^2]。 2. **信号的关联** - 当用户点击 `btn1` 时,触发其内置的 `clicked()` 信号,并将其绑定至 `showMes()` 函数。 - 同样地,`btn2` 被设置为触发 `say_mes()` 函数以执行 TTS (文本转语音)[^1]。 3. **自定义信号测试** 用户可以尝试点击 `btn3` 来发射自定义信号 `signal_1()`,从而进一步扩展功能逻辑。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值