• 5911阅读
  • 1回复

[提问]QT MainWindow打开多个Dialog(新手) [复制链接]

上一主题 下一主题
离线火星科技
 
只看楼主 倒序阅读 楼主  发表于: 2012-03-06
我像通过MainWindow上的不同按钮来打开不同的Dialog.

项目结构
window.open('http://www.qtcn.org/bbs/attachment/Mon_1203/17_128377_40574df0a665767.png?15');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" >
--------------------------------------
文件——dialog.h
--------------------------------------
#ifndef DIALOG1_H
#define DIALOG1_H

#include <QDialog>

namespace Ui {
    class Dialog1;
}

class Dialog1 : public QDialog
{
    Q_OBJECT

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


private slots:                              //////////////自定义了打开DIALOG1的槽
    void goToDialog1();

private:
    Ui::Dialog1 *ui;
};

#endif // DIALOG1_H
------------------------------
mainwindow.h
------------------------------
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "dialog1.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
//    Dialog1 *dig1;                                         ///////////////////////////是加在这里吗???

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

-----------------------------
源文件——dialog.cpp
-----------------------------
#include <QtGui>
#include "dialog1.h"
#include "ui_dialog1.h"

Dialog1::Dialog1(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog1)
{
    ui->setupUi(this);

    ui->calculateOptionBox->hide();
    layout()->setSizeConstraint(QLayout::SetFixedSize);


}

Dialog1::~Dialog1()
{
    delete ui;
}

-----------------------
mainwindow.cpp
-----------------------
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "dialog1.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->aButton,SIGNAL(clicked()),ui->dig1,SLOT(goToDialog1()));//////////////////////核心问题在这里
}


MainWindow::~MainWindow()
{
    delete ui;
}

void Dialog1::goToDialog1()        ///////////////自定义槽{
    ui->dig1->show();
}

------------------------
main.cpp
------------------------
#include <QtGui/QApplication>
#include "dialog1.h"
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow w;
    w.show();


    return a.exec();
}


离线wxj120bw

只看该作者 1楼 发表于: 2012-03-06
回 楼主(火星科技) 的帖子
实现多对话框弹出 在按钮链接的槽里new QDialog。
PS:你的代码编译过了吗
快速回复
限100 字节
 
上一个 下一个