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_OBJECT
public:
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_OBJECT
public:
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);
}