您的位置:首页 > 编程语言 > Qt开发

Qt如何实现多窗口调用

2015-12-05 20:46 381 查看
点击打开原博文

A. 环境:windows 7 + qt-4.7.4 + qtcreator-2.3.1

B. 在进行多窗口设计并调用之前,可以先了解一下知识。

1.对设计的UI进行预览Preview,快捷键Alt+Shift+R



2.ui的形式有多种

(1)添加Dialog形式



(2)添加Main Window形式



(3)添加Widget形式



之所以给出上述距离,是因为如果是qtcreator内添加Form类,其ui无法收到改动头标内容,但可以同时添加form所对应的.h和.cpp文件;如果是visual studio 2008内添加form类,其ui可以收到改动头标,但不能同时添加form所对应的.h和.cpp文件。两种方案各有优劣!但建议使用qtcreator,比较可以跨平台使用!!!

C.以添加一QDialog类msgDialog为例

1.ui如图所示



2.对应的头文件.h和源文件.cpp修改之处如下:

.h文件

[cpp] view
plaincopy

#ifndef MSGDIALOG_H

#define MSGDIALOG_H

#include <QDialog>

namespace Ui {

class msgDialog;

}

class msgDialog : public QDialog

{

Q_OBJECT

public:

explicit msgDialog(QWidget *parent = 0);

~msgDialog();

<span style="color:#ff0000">void wtMsg(const QString qstring); //写消息内容</span>

private:

Ui::msgDialog *ui;

};

#endif // MSGDIALOG_H

.cpp文件

[cpp] view
plaincopy

#include "msgdialog.h"

#include "ui_msgdialog.h"

msgDialog::msgDialog(QWidget *parent) :

QDialog(parent),

ui(new Ui::msgDialog)

{

ui->setupUi(this);

}

msgDialog::~msgDialog()

{

delete ui;

}

void msgDialog::wtMsg(const QString qstring)

{

ui->label->setText(qstring); //写内容

}

在MainWindow类中对该Dialog类进行调用

.h中

[cpp] view
plaincopy

#include <QMainWindow>

#include <QDebug>

<span style="color:#ff0000">#include <msgDialog.h></span>

#include <QString>

namespace Ui {

class MainWindow;

}

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

explicit MainWindow(QWidget *parent = 0);

~MainWindow();

<span style="color:#ff0000"> msgDialog msgdialog; //声明一对象</span>

public slots:

void on_pushButton_clicked();

void on_pushButton_2_clicked();

void iSlot(); //int b

signals:

void iSignal(int a, float b);

private:

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

.cpp中调用部分

[cpp] view
plaincopy

void MainWindow::on_pushButton_clicked()

{

// emit iSignal(5, 0.3);

QString qstring = "lyc_daniel";

msgdialog.wtMsg(qstring);

// msgdialog.show();

msgdialog.exec();

}

采用函数show与exec有区别,前者除了操作当前界面外,还可以操作其他界面;后者只允许操作当前界面。

调用后的结果如下:




文档信息

版权声明:自由转载-非商用-非衍生-保持署名 | Creative
Commons BY-NC-ND 3.0

博客网址:/article/2006287.html

博 主: lyc_daniel

寄 语:神爱世人,甚至将他的独生子(耶稣)赐给他们,叫一切信他的,不至灭亡,反得永生。(圣经·约翰福音3:16)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: