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文件
- #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文件
- #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中
- #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中调用部分
- 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
- 博客网址:http://blog.csdn.net/lyc_daniel/article/details/12837491
- 博 主: lyc_daniel
- 寄 语:神爱世人,甚至将他的独生子(耶稣)赐给他们,叫一切信他的,不至灭亡,反得永生。(圣经·约翰福音3:16)