QT下面能否从一个form调用另一个form,例如一个对话框调用另一个对话框
例如:
第一个对话框:
dialog1.h:
#ifndef DIALOG1_H
#define DIALOG1_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
class Dialog1 : public QDialog
{
Q_OBJECT
public:
Dialog1();
private:
QPushButton *pushButton;
QLabel *label;
private:
void showdialog2();
};
#endif // DIALOG1_H
dialog1.cpp
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
#include "dialog1.h"
#include "dialog2.h"
Dialog1::Dialog1()
{
pushButton = new QPushButton(this);
pushButton->setGeometry(QRect(30, 240, 361, 23));
label = new QLabel(this);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(10, 10, 351, 71));
QFont font;
font.setPointSize(15);
font.setBold(true);
font.setWeight(75);
label->setFont(font);
setWindowTitle(QApplication::translate("Dialog1", "Dialog1", 0, QApplication::UnicodeUTF8));
pushButton->setText(QApplication::translate("Dialog1", "click to show dialog2", 0, QApplication::UnicodeUTF8));
label->setText(QApplication::translate("Dialog1", "this is dialog1.", 0, QApplication::UnicodeUTF8));
QSize size(400, 300);
size = size.expandedTo(minimumSizeHint());
resize(size);
connect(pushButton, SIGNAL(clicked()),this,SLOT(showdialog2));
}
void Dialog1::showdialog2()//在这里调用第二个对话框
{
Dialog2 dialog2;
dialog2.exec();
}
第二个对话框:
dialog2.h:
#ifndef DIALOG2_H
#define DIALOG2_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
class Dialog2 : public QDialog
{
Q_OBJECT
public:
Dialog2();
private:
QPushButton *pushButton;
QLabel *label;
};
#endif // DIALOG2_H
dialog2.cpp:
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
#include "dialog2.h"
Dialog2::Dialog2()
{
label = new QLabel(this);
label->setGeometry(QRect(20, 10, 351, 61));
QFont font;
font.setPointSize(15);
font.setBold(true);
font.setWeight(75);
label->setFont(font);
pushButton = new QPushButton(this);
pushButton->setGeometry(QRect(140, 220, 75, 23));
setWindowTitle(QApplication::translate("Dialog2", "Dialog2", 0, QApplication::UnicodeUTF8));
label->setText(QApplication::translate("Dialog2", "this is dialog2", 0, QApplication::UnicodeUTF8));
pushButton->setText(QApplication::translate("Dialog2", "exit", 0, QApplication::UnicodeUTF8));
QSize size(400, 300);
size = size.expandedTo(minimumSizeHint());
resize(size);
connect(pushButton, SIGNAL(clicked()),this, SLOT(close()));
}
主程序:
main.cpp
#include <QApplication>
#include "dialog1.h"
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
Dialog1 dialog1;
return dialog1.exec();
}
项目:
dialog.pro:
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
# Input
HEADERS += dialog1.h dialog2.h
FORMS +=
SOURCES += dialog1.cpp dialog2.cpp main.cpp
是想从第一个对话框调用第二个对话框并显示界面出来。
[ 此贴被XChinux在2006-12-03 15:07重新编辑 ]