I wanted to create a small dialog that using buttons we can add some numbers.
First I designed a form by Qt Designer using Dialog Without Buttons template like this:
1.jpg
Then I wrote a calculator.h file like this:
#ifndef CALCULATOR_H
#define CALCULATOR_H
#include<QDialog>
#include "ui_Calculator.h"
class Calculator
: public QDialog,
public Ui
::Calculator{
Q_OBJECT
public:
private slots:
void myslot();
};
#endif // 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
To copy to clipboard, switch view to plain text mode
Then, a calculator.cpp this way:
#include <QtWidgets>
#include "calculator.h"
Calculator
::Calculator(QWidget *parent
){
setupUi(this);
connect(oneButton,SIGNAL(clicked(bool)), lineEdit, SLOT(myslot()));
}
void Calculator::myslot(){
lineEdit -> setText("1");
}
#include <QtWidgets>
#include "calculator.h"
Calculator::Calculator(QWidget *parent)
:QDialog(parent)
{
setupUi(this);
connect(oneButton,SIGNAL(clicked(bool)), lineEdit, SLOT(myslot()));
}
void Calculator::myslot(){
lineEdit -> setText("1");
}
To copy to clipboard, switch view to plain text mode
And finally the main.cpp this way:
#include <QApplication>
#include <QDialog>
#include "ui_Calculator.h"
int main(int argc, char* argv[])
{
Ui::Calculator ui;
ui.setupUi(dialog);
dialog -> show();
return app.exec();
}
#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();
}
To copy to clipboard, switch view to plain text mode
Now the code runs without any error but not as expected! That is when I click on '1' button nothing will be printed out onto the lineEdit.
Why please and how to solve it?
Bookmarks