欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QT学习杂记

程序员文章站 2022-07-13 23:35:04
...

一、关于QT中on_pushButton_10_clicked有定义没见调用却能使用

具体参考Worldsing 博客
这种写法是QtCreator默认的,也就是它背后帮你完成了connect。比如对象obj有信号A,你只需要在同一个类中完成如下形式的函数即可on_obj_a()。
编译时QtCreator就会自动在背后处理,效果就是对象obj的信号a被连接到这个函数。推荐还是不这样做,这样做影响阅读。等多起来时自己也看不明白。也许不应该说是QtCreator的帮助,应该是moc的帮助恰当点。Qt Meta Object Compiler会读取*.h文件 生成 moc_*.cpp文件,你说的没有看到调用on_pushButton_clicked()的语句,
这种格式的不需要专门去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);

二、QT之QPushButton中setEnabled() 和 setClickable() 的应用

具体参考盖世猪猪侠的博客
setClickable():设置成true时,按钮为可点击,设置为false时,按钮不可点击,不能响应点击事件,但此时如果setEnabled()为true,那么按钮即使不可点击(setClickable()为false),也会产生变化(一闪一闪)。
setEnabled():设置成true时,相当于**了按钮,按钮的状态不再是死的,而是会对触摸或者点击产生反应,并且可以响应一些触发事件。而设置成false时,按钮是灰色的,无论是否可点击(即使将setClickable()设置成true),都无法响应任何触发事件。总的来看,setEnabled()相当于总开关,控制着按钮的状态,而setClickable()相当于具体的某个开关,控制这个开关是否可以点击

三、关于qtcreator按F1无法显示帮助文档

打开“工具–选项–帮助–文档”,这时候看到列表中文档是空的,点击“添加”按钮,添加路径"/usr/share/qt4/doc/qch/"下的所有文件。

相关标签: linux qt4