[code=C/C++][/code]
Dialog.cpp file
#include "dialog.h"
#include "ui_dialog.h"
#include "mywindow.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
connect(pushButton, SIGNAL(clicked()),this, SLOT(on_pushButton_clicked()));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::on_pushButton_clicked()
{
mywindow p;
p.show();
}
void Dialog::changeEvent(QEvent *e)
{
QDialog::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
mywindow.cpp
#include "mywindow.h"
#include "ui_mywindow.h"
mywindow::mywindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::mywindow)
{
ui->setupUi(this);
}
mywindow::~mywindow()
{
delete ui;
}
void mywindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
我想实现的功能是在dialog框里 点击一下button 按钮 就弹出 那个 mywindow 窗体, 但是编译的时间我不知道那里错了出现:"pushButton "was not declare in this scope ;
真的很郁闷,我测试了其他的,但是这样写都没有错,就是这个这样就有问题了!我真是求解,急用, 希望给为QT达人给我点建议!!
------解决方案--------------------
ui->pushButton
------解决方案--------------------
哪有这么复杂,既然用了UI,在button上右键->转到槽,自动就会生成槽函数。
------解决方案--------------------
------解决方案--------------------
void Dialog::on_pushButton_clicked()
{
mywindow p;
p.show();
}
这是你的槽函数。
p是一个在栈上的变量,这个函数结束是p被销毁,窗口就没了,
其实已经显示在屏幕上了,太快看不见。
p应该声明为类成员变量。
void Dialog::on_pushButton_clicked()
{
if(!p)
p = new mywindow;
p.show();
}