一、适用情景
在其他类中使用主界面ui,this,控件操作等
二、步骤
首先,子类需要包含主界面的头文件和ui_xx.h文件,声明主界面类
然后使用构造函数把主界面的指针传递给子类
子类头文件:
#ifndefONEUI_H#defineONEUI_H//首先,包含主界面头文件等#include"mainwindow.h"#include"ui_mainwindow.h"classMainWindow;// 声明类classoneui{public:oneui(MainWindow *m_p);//构造函数传递父类指针
MainWindow *on;//保存父类指针public:voidtest();};#endif// ONEUI_H
子类cpp文件:
#include"oneui.h"#include<QFileDialog>#include<QDebug>//然后,使用构造函数传递父类窗口指针
oneui::oneui(MainWindow *m_p){
on = m_p;}//测试函数,作用:在主界面弹出文件选择框,打印出选择文件地址void oneui::test(){
QString strData;
QString curPash =QDir::currentPath();//获取当前路径
QString dlgTitle="选择表格文件";//xls和xlsx格式的文件都可以,xlsx兼容xls,注意每一种类型后面要加两个分号
QString filter="表格文件(*.xls *.xlsx);;xls文件(*.xls);;xlsx文件(*.xlsx);;所有文件(*.*)";//创建文件选择对话框
QStringList fileList =QFileDialog::getOpenFileNames(on,dlgTitle,curPash,filter);if(fileList.count()<1)return;for(int i =0;i<fileList.count();i++){//保存文件地址
strData = fileList.at(i);}//测试打印和调用父类ui控件qDebug()<<strData;
on->ui->lineEdit->setText("sdawdw");}
主界面头文件设置ui为公有:
#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>#include"oneui.h"
QT_BEGIN_NAMESPACE
namespace Ui {classMainWindow;}
QT_END_NAMESPACE
classMainWindow:publicQMainWindow{
Q_OBJECT
public:MainWindow(QWidget *parent =nullptr);~MainWindow();//设置公有
Ui::MainWindow *ui;private slots:voidon_pushButton_clicked();};#endif// MAINWINDOW_H
主界面cpp文件设置:
#include"mainwindow.h"#include"ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent):QMainWindow(parent),ui(new Ui::MainWindow){
ui->setupUi(this);}MainWindow::~MainWindow(){delete ui;}//测试按钮1voidMainWindow::on_pushButton_clicked(){//构建子类对象,将主界面this传递
oneui one(this);
one.test();}
效果图:
本文转载自: https://blog.csdn.net/weixin_49297378/article/details/128445137
版权归原作者 连朔漠 所有, 如有侵权,请联系我们删除。
版权归原作者 连朔漠 所有, 如有侵权,请联系我们删除。