我最近开始学习Qt,而我现在是初学者。所以作为我自己的第一个例子,我写了以下简单的例子。
该示例名为 Calculator 。它现在只有两个按钮一个行编辑。它在这里:
我的 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 按钮时,行编辑中不会打印/显示任何内容。为什么请? 我应该改变我的计划的哪一部分来解决问题?
答案 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