//Test.h
#ifndef TEST_H
#define TEST_H
#include <QtGui>
class Calculator : public QDialog
{
Q_OBJECT
public:
Calculator(QWidget *parent = 0);
private:
QPushButton*ZERO;
QPushButton*ONE;
QPushButton*TWO;
};
#endif // TEST_H
//Test.cpp
#include "Test.h"
Calculator::Calculator(QWidget*parent)
{
ZERO = new QPushButton(tr("0"));
ONE = new QPushButton(tr("1"));
TWO = new QPushButton(tr("2"));
QVBoxLayout*H = new QVBoxLayout;
H->addWidget(ZERO);
H->addWidget(ONE);
H->addWidget(TWO);
setLayout(H);
}
//main.cpp
#include <QApplication>
#include "Test.h"
int main(int argc,char*argv[])
{
QApplication app(argc,argv);
QDialog Calculator;
Calculator.show();
return app.exec();
}
结果出现
怎么回事???帮帮忙啊!!!
------解决方案--------------------
Calculator::Calculator(QWidget*parent) {
QVBoxLayout*H = new QVBoxLayout(this);
ZERO = new QPushButton(tr("0"), this);
ONE = new QPushButton(tr("1"), this);
TWO = new QPushButton(tr("2"), this);
H->addWidget(ZERO);
H->addWidget(ONE);
H->addWidget(TWO);
}
------解决方案--------------------
int main(int argc,char*argv[]){
QApplication app(argc,argv);
Calculator a;
a.show();
return app.exec();}
------解决方案--------------------
应该是没有指定父亲this 可以试着添加试试
------解决方案--------------------
问题出在main() 函数里,你自定义的类是Calculator,而你在main()函数里用的却是QDialog。
------解决方案--------------------
QApplication app(argc,argv);
QDialog Calculator;
Calculator.show();
应该改为
Calculator calculator;
calculator.show();
因为你用定义的那个类根本没有调用所以就只显示一个空dialog
------解决方案--------------------
class Calculator : public QDialog表明了Calculator是继承QDialog的,那么你写了这么多的代码,也都是在写Calculator这个类,在main函数,也该去实例化Calculator这个类的,父类QDialog你并没做任何的初始化,因为默认:
Calculator(QWidget *parent = 0);parent指针是0.