每日一笔记之3:QTconnect()

时间:2023-03-09 13:01:11
每日一笔记之3:QTconnect()

刚学习QT的时候,跟着教程做一些简答的实验,教程简单的界面使用UI文件,直接在界面上拖一个按键,在右键go to slot,在编写槽函数。

我以前没学过C++,一直以为这个自动跳转过去的slot函数是一个虚函数,只是在这儿reinpliment而已。今天尝试自己通过纯代码编写,找了半天也没找到这个所谓的虚函数原型。

百度了才知道这个void 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);

大神们都不推荐这么使用。