Qt on_pushButton_clicked()的用法
来源:互联网 发布:jsp与php的区别 编辑:程序博客网 时间:2024/04/30 16:01
转载于:http://www.ithao123.cn/content-5217169.html
在Qt里按钮控件默认对应一个on_pushButton_clicked()成员,如果想用点击信号,在代码中实现on_pushButton_clicked()成员即可。
最近看了一段代码,里面并没有connect函数,只定义了pushbutton,也没有看到调用on_pushButton_clicked()的语句,那么难道说只要点了button,就会自动调用on_pushButton_clicked()的内容吗?
这种写法是QtCreator默认的,也就是它背后帮你完成了connect。
比如对象obj有信号A,你只需要在同一个类中完成如下形式的函数即可
on_obj_a()。
编译时QtCreator就会自动在背后处理,效果就是对象obj的信号a被连接到这个函数。
推荐还是不这样做,这样做影响阅读。等多起来时自己也看不明白。也许不应该说是QtCreator的帮助,应该是moc的帮助恰当点。
Qt Meta Object Compiler会读取*.h文件 生成 moc_*.cpp文件,你说的没有看到调用on_pushButton_clicked()的语句,
是因为调用此语句的方法刚好就存在于上面的moc_*.cpp文件里,qmake生成的makefile里会指定源代码:
***************************************Makefile*******************
SOURCES = *.cpp
main.cpp moc_*.cpp
******************************************************************
moc_*cpp文件与*.cpp文件在同一目录下。
那种格式的不需要专门去connect,
用的是另外一个函数,在ui_mainwindow.h这个文件中,
名字叫connectSlotsByName
详细说明:
void QMetaObject::connectSlotsByName ( QObject * object ) [static]
Searches recursively for all child objects of the given object, and connects matching signals from them to slots of object that follow the following form:
void on_<object name>_<signal name>(<signal parameters>);
Let's assume our object has a child object of type QPushButton with the object name button1. The slot to catch the button's clicked() signal would be:
void on_button1_clicked();
QMetaObject::connectSlotsByName(MainWindow);
另外需要说明的是如果在此基础上再加入手动的connect的话将会响应两按钮的点击效果,或是直接不应该。
Qt的增加信号与槽之间的连接方法有:手动编写conncet代码和Ui连接
Qt的对像之间通信中信号和槽比较常用,其它的通信方法还有postEvent
所以用法是:
1、在UI文件里加入按钮,objectName 设置为pushButtonA
2、在引用的头文件(比如MainWindow.h)里加入按钮曹的声明:
public slots:
void on_pushButtonConnect_clicked();
3、在调用处使用,(比如MainWindow.cpp)。
void MainWindow::on_pushButtonConnect_clicked()
{
qDebug("pushButtonConnect");
}
- Qt on_pushButton_clicked()的用法
- Qt on_pushButton_clicked()的用法
- Qt on_pushButton_clicked()的用法
- QT定时器的用法
- Qt QString的用法
- QT文档的用法
- Qt QTableWidget的用法
- QT--foreach的用法
- Qt多线程的用法
- QT中DBus的用法
- Qt中foreach的用法
- Qt中foreach的用法
- Qt QTableview的用法详解
- Qt中foreach的用法
- Qt Qtableview 的一些用法
- QT中定时器的用法
- [QT]QTreeWidget 的基本用法
- Qt QTableview的用法详解
- jsoncpp使用方法
- 喜欢萌到爆可爱到爆的阿狸吗?本周利用所学知识实现了一个登陆界面的跳转,先看看最终效果吧~
- 14.2.4 InnoDB Redo Log
- 关于Android的横竖屏设置
- 华为OJ基础篇-找出字符串中第一个只出现一次的字符
- Qt on_pushButton_clicked()的用法
- 正则验证js大全
- JAVA中三种URL连接方法
- leetcode oj java Excel Sheet Column Title
- netperf 与网络性能测量
- android截屏
- Android中延迟加载的问题
- 怎么使用互联网安全技能防身
- 程序存储问题