失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Qt主窗口向子窗口传值

Qt主窗口向子窗口传值

时间:2020-02-27 01:23:39

相关推荐

Qt主窗口向子窗口传值

主窗口向子窗口传值的过程中,由于子窗口里的控件是其私有成员,所以主窗口不能直接访问。解决的方法是在子窗口中定义一个公有函数,通过调用此函数实现私有成员的访问。话不多说,看实现过程:

1.通过Qt Designer设计主窗口与子窗口

主窗口MainWindow包含一个按钮pushButton和一个文本编辑lineEdit

子窗口SubWidge包含一个标签label

2.程序:

mainwindow.h

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QPushButton>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;private slots :void buttonEvent();//点击按钮的槽函数};#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"#include "ui_mainwindow.h"#include "subwidge.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);//连接信号与槽connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(buttonEvent()));}MainWindow::~MainWindow(){delete ui;}//点击按钮的槽函数,生成子窗口,并显示信息void MainWindow::buttonEvent(){//生成子窗口SubWidge *subw = new SubWidge();subw->show();//将主窗口的文本信息,传进子窗口subw->setText(ui->lineEdit->text());}

subwidge.h

#ifndef SUBWIDGE_H#define SUBWIDGE_H#include <QWidget>namespace Ui {class SubWidge;}class SubWidge : public QWidget{Q_OBJECTpublic:explicit SubWidge(QWidget *parent = nullptr);~SubWidge();void setText(QString str);private:Ui::SubWidge *ui;};#endif // SUBWIDGE_H

subwidge.cpp

#include "subwidge.h"#include "ui_subwidge.h"SubWidge::SubWidge(QWidget *parent) :QWidget(parent),ui(new Ui::SubWidge){ui->setupUi(this);}SubWidge::~SubWidge(){delete ui;}void SubWidge::setText(QString str){ui->label->setText(str);}

3.程序运行结果:

主窗口输入一条文本后,点击按钮

子窗口弹出,label上显示该文本信息

如果觉得《Qt主窗口向子窗口传值》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。