Qt父子窗口互换信息
来源:互联网 发布:java jar命令 编辑:程序博客网 时间:2024/06/05 01:02
1.创建父子窗体#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDialog>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); QDialog * d= new QDialog(this); //d->show(); d->exec();}MainWindow::~MainWindow(){ delete ui;}2.创建菜单窗口要用到.ui菜单文件,创建子菜单,然后进行“转到槽”的操作#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDialog>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); QDialog * d= new QDialog(this); //d->show(); // d->exec();}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_action456_triggered(){ QDialog * d= new QDialog(this); d->show();}3.父子窗口传递信息//mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private: void putText(QString s);private slots: void on_action456_triggered(); void on_label_linkActivated(const QString &link);private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
//dialog.h#ifndef MYDIALOG_H#define MYDIALOG_H#include <QDialog>namespace Ui {class MyDialog;}class MyDialog : public QDialog{ Q_OBJECTpublic: explicit MyDialog(QWidget *parent = 0); ~MyDialog();signals: void giveText(QString s);private slots: void on_pushButton_clicked(); void on_lineEdit_cursorPositionChanged(int arg1, int arg2);private: Ui::MyDialog *ui;};#endif // MYDIALOG_H
//mainwindow.cpp#include <QDialog>#include "mydialog.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); QDialog * d = new QDialog(this); //d->show(); // d->exec();}MainWindow::~MainWindow(){ delete ui;}void MainWindow::putText(QString s){ ui->label->setText(s);}void MainWindow::on_action456_triggered(){ QDialog * d= new MyDialog(this); connect(d,&MyDialog::giveText,this,&MainWindow::putText); d->show();}
//dialog.cpp#include "mydialog.h"#include "ui_mydialog.h"MyDialog::MyDialog(QWidget *parent) : QDialog(parent), ui(new Ui::MyDialog){ ui->setupUi(this);}MyDialog::~MyDialog(){ delete ui;}void MyDialog::on_pushButton_clicked(){ QString s = ui->lineEdit->text(); emit giveText(s);}
0 0