QT在其他cpp文件中使用MainWindow的界面和控件的方法

        Qt工程中默认所有的代码都写在mainwindow.cpp里,当代码量不多时尚可,但一旦代码量多,就会使mainwindow.cpp非常臃肿,给开发和阅读造成不便,因此考虑将部分代码剥离出来,放到另外的cpp文件里。这里就会涉及到在另外的cpp里如何使用mainwindow中的控件的问题。经过摸索,找到了一种简单且有效的办法。

1.在工程目录下创建.cpp和.h文件,这里以user.cpp举例

user.cpp的源码:

#include "user.h"

Ui::MainWindow *ui = nullptr;

/*********************************************************************
 * 函数功能:界面初始化
 * 参 数:  无
 * 返回值: 无
 * 备  注: 无
 *********************************************************************/
void ui_init(Ui::MainWindow *ui_ptr)
{
    ui = ui_ptr;
}

 

user.h的源码:

#ifndef __USER_H__
#define __USER_H__

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>
#include <QFileInfo>
#include <QFileDialog>
#include <QMessageBox>
#include <QDebug>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QTime>
#include <QTimer>
#include <QProcess>
#include <QDir>

/*********************************************************************
 * 函数功能:界面初始化
 * 参 数:  无
 * 返回值: 无
 * 备  注: 无
 *********************************************************************/
void ui_init(Ui::MainWindow *ui_ptr);


#endif

 

2.打开*.pro工程文件,将user.cpp和user.h添加到工程中

 

3.在MainWindow的构造函数中,将ui指针的值通过ui_init()函数,传递给user.cpp中的ui这个全局变量。

 

4.至此,就可以在user.cpp中使用ui及其所有的控件了,和mainwindow.cpp没有区别。

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值