QT多界面之间数据传输
生活随笔
收集整理的這篇文章主要介紹了
QT多界面之间数据传输
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
在Qt中,要在兩個界面之間進行數據傳輸,有幾種方法,我這里演示使用Qt的自定義信號來進行數據。程序的大概流程是,打開主界面,點擊一個按鈕,彈出子窗口,然后主窗口可以往子窗口發信息,子窗口也可以往主窗口發信息。
示例運行結果如下:
代碼
mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QDialog> #include "dialog.h" #include <QDebug>namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_OpenDialog_clicked();void on_emitBtn_clicked();void setStr(QString&);private:Ui::MainWindow *ui;Dialog *dialog;signals:void mainWidgetStr(QString &);};#endif // MAINWINDOW_Hmainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this);dialog = new Dialog(this);connect(dialog,SIGNAL(getStr(QString&)), this, SLOT(setStr(QString&))); }MainWindow::~MainWindow() {delete ui; }void MainWindow::on_OpenDialog_clicked() {dialog->setModal(false); //模態dialog->show();}void MainWindow::on_emitBtn_clicked() {connect(this,SIGNAL(mainWidgetStr(QString &)),dialog,SLOT(mainWidgetStr(QString &)));QString str = ui->EmitLineEdit->text();emit mainWidgetStr(str); }void MainWindow::setStr(QString &str) {ui->ReceiveLineEdit->setText(str); }dialog.h
#ifndef DIALOG_H #define DIALOG_H#include <QDialog>namespace Ui { class Dialog; }class Dialog : public QDialog {Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0);~Dialog();private slots:void on_emitBtn_clicked();void mainWidgetStr(QString &);private:Ui::Dialog *ui; signals:void getStr(QString &str); };#endif // DIALOG_Hdialog.cpp
#include "dialog.h" #include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog) {ui->setupUi(this);}Dialog::~Dialog() {delete ui; }void Dialog::on_emitBtn_clicked() {QString str = ui->EmitLineEdit->text();emit getStr(str); }void Dialog::mainWidgetStr(QString &str) {ui->ReceiveLineEdit->setText(str); }整個項目地址:https://download.csdn.net/download/matt45m/12055957
總結
以上是生活随笔為你收集整理的QT多界面之间数据传输的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt自定义信号槽
- 下一篇: Qt与OpenCV编程:在QLabel加