Qt如何实现多窗口调用

Qt如何实现多窗口调用

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();

    void wtMsg(const QString qstring); //写消息内容

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>
#include <msgDialog.h>
#include <QString>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    msgDialog msgdialog; //声明一对象

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
  • 博客网址:
  • 博       主: lyc_daniel
  • 寄       语:神爱世人,甚至将他的独生子(耶稣)赐给他们,叫一切信他的,不至灭亡,反得永生。(圣经·约翰福音3:16)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东山一角

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值