行编辑小部件不显示任何内容

时间:2016-10-19 13:51:59

标签: qt

我最近开始学习Qt,而我现在是初学者。所以作为我自己的第一个例子,我写了以下简单的例子。

该示例名为 Calculator 。它现在只有两个按钮一个行编辑。它在这里:

enter image description here

我的 Calculator.h 是这样的:

#ifndef CALCULATOR_H
#define CALCULATOR_H

#include<QDialog>
#include "ui_Calculator.h"

class Calculator : public QDialog, public Ui::Calculator
{
    Q_OBJECT

public:
    Calculator(QWidget* parent = 0);

private slots:
   void myslot();
};

#endif // CALCULATOR_H

Calculator.cpp 是这样的:

#include <QtWidgets>
#include "calculator.h"

Calculator::Calculator(QWidget *parent)
    :QDialog(parent)
{
    setupUi(this);

 connect(oneButton,SIGNAL(clicked(bool)), this, SLOT(myslot()));
}

void Calculator::myslot(){
    lineEdit -> setText("1");
}

这是 main.cpp

#include <QApplication>
#include <QDialog>

#include "ui_Calculator.h"

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    Ui::Calculator ui;
    QDialog* dialog = new QDialog;
    ui.setupUi(dialog);
    dialog -> show();

    return app.exec();
}

程序运行正常,没有任何错误。但是当我点击 1 按钮时,行编辑中不会打印/显示任何内容。为什么请? 我应该改变我的计划的哪一部分来解决问题?

1 个答案:

答案 0 :(得分:1)

您正在主要设置错误的课程。

您应该使用自定义Calculator课程,而不是QDialog

setupUi只会初始化您的元素,但Calculator中的代码永远不会被调用。你的主要应该是这样的:

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    Calculator calc; //using your Calculator class.
    calc.show();    
    return app.exec();
}

不包括ui_calculator.h,但calculator.h