当前位置: 代码迷 >> QT开发 >> Qt新手
  详细解决方案

Qt新手

热度:12   发布时间:2016-04-25 04:03:18.0
Qt新手求助

//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.
  相关解决方案