最近在做登录跳转功能发现很多没有详细解释怎么用QObject::connect来实现下面分享一种,
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
loge_in login;
login.setWindowTitle("登录");
login.show();
QObject::connect(&login, &loge_in::userLogin, &w, &MainWindow::rcvLogin); // 登录信号与主界面连接
QObject::connect(&w, &MainWindow::closeLoginWindow, &login, &loge_in::loginWindowClose); // 登录主界面后关
return a.exec();
}
注意需要在对应的.h文件添加
#ifndef LOGE_IN_H
#define LOGE_IN_H
#include "paramconfig.h"
#include <QWidget>
#include "mainwindow.h"
#include <QDialog>
namespace Ui {
class loge_in;
}
class loge_in : public QWidget
{
Q_OBJECT
public:
explicit loge_in(QWidget *parent = nullptr);
~loge_in();
static QString g_key;
signals:
void userLogin();
void loginWindowClose();
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
private:
Ui::loge_in *ui;
};
#endif // LOGE_IN_H
这时候我发现我们去创建函数会报错
其实是QT6使用这种方式的时候已经自动创建了
点击红色方框
会跳转到目标函数,这时候只需要在函数内加上想要的功能就可以了