我想在一个对话框中设置一个按钮,当点击这个按钮时,弹出我自己设计的一个对话框来,
程序入下,大家帮忙分析下,我运行后,点击按钮,结果没有反应!!!!
弹出对话框的头文件:
#ifndef FINDDIALOG_H
#define FINDDIALOG_H
#include <qdialog.h>
#include <qtextcodec.h>
#include <qlineedit.h>
class QCheckBox;
class QLabel;
class QPushButton;
class FindDialog : public QDialog
{
public:
FindDialog(QWidget *parent = 0, const char *name = 0);
QLineEdit *lineEdit;
private:
QLabel *label;
QPushButton *findButton;
QPushButton *closeButton;
};
#endif
弹出对话框的cpp文件
#include <qcheckbox.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include "test3.h"
FindDialog::FindDialog(QWidget *parent, const char *name)
: QDialog(parent, name)
{
setCaption(tr("输入指令"));
label = new QLabel(tr("输入您的指令:"), this);
lineEdit = new QLineEdit(this);
findButton = new QPushButton(tr("确定"), this);
closeButton = new QPushButton(tr("取消"), this);
connect(findButton, SIGNAL(clicked()),
this, SLOT(accept()));
connect(closeButton, SIGNAL(clicked()),
this, SLOT(reject()));
QHBoxLayout *topLeftLayout = new QHBoxLayout;
topLeftLayout->addWidget(label);
topLeftLayout->addWidget(lineEdit);
QVBoxLayout *leftLayout = new QVBoxLayout;
leftLayout->addLayout(topLeftLayout);
leftLayout->addStretch(1); //30
QVBoxLayout *rightLayout = new QVBoxLayout;
rightLayout->addWidget(findButton);
rightLayout->addWidget(closeButton);
QHBoxLayout *mainLayout = new QHBoxLayout(this);
mainLayout->setMargin(11);
mainLayout->setSpacing(6);
mainLayout->addLayout(leftLayout);
mainLayout->addLayout(rightLayout);
}
主对话框的头文件
#ifndef TRAIN_H
#define TRAIN_H
#include <qdialog.h>
#include <qpushbutton.h>
#include <qtextcodec.h>
#include <qlayout.h>
#include <qstring.h>
#include "test3.h"
class TrainDialog:public QDialog
{
Q_OBJECT
public:
TrainDialog(QWidget *parent=0,const char *name=0);
private slots:
void save();
private:
QPushButton *keepButton;
QString str;
};
#endif
主文件的cpp文件
#include "train.h"
TrainDialog::TrainDialog(QWidget *parent, const char *name)
: QDialog(parent, name)
{
setCaption(tr("对话框"));
keepButton=new QPushButton(tr("保存"),this);
str="";
QVBoxLayout *Layout=new QVBoxLayout(this);
Layout->addWidget(keepButton);
connect(keepButton,SIGNAL(clicked()),this,SLOT(save()));
}
void TrainDialog::save()
{
FindDialog dialog(this);
if(dialog.exec())
{
str=dialog.lineEdit->text();
}
}
main文件:
#include <qapplication.h>
#include "train.h"
int main(int argc,char **argv)
{
QApplication app(argc,argv);
app.setDefaultCodec(QTextCodec::codecForName("GBK"));
TrainDialog *dialog=new TrainDialog;
app.setMainWidget(dialog);
dialog->show();
return app.exec();
}