После нескольких часов отладки и поиска ответа в Интернете, я немного в отчаянии.Это мой первый небольшой проект на Qt, и я пытаюсь сделать следующее: я хочу создать небольшую вычислительную игру.Выглядит это так: Приложение до первого нажатия После нажатия «Проверить / Создать» должно быть следующее изменение: Приложение после первого нажатия
Но частоЯ должен нажать на эту кнопку несколько раз, чтобы вызвать ее.Кнопка «Выйти» работает отлично, поэтому это не является общей проблемой, но, вероятно, дерьмовое кодирование с моей стороны.
Вот мой код, надеюсь, у вас есть несколько подсказок:
(1) mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
int a, b, result;
private slots:
void CmdCheckNewClicked();
};
#endif // MAINWINDOW_H
(2) mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <ctime>
void MainWindow::CmdCheckNewClicked() {
if(result != -1) {
int eingabe = ui->EdtInput->text().toInt();
QString comment;
if(eingabe==result) {
comment = "Right";
} else {
comment = "Wrong";
}
comment += QString(": %1 + %2 = %3").arg(a).arg(b).arg(result);
ui->LblComment->setText(comment);
ui->EdtInput->setText("");
}
a = rand() % 20 + 20;
b = rand() % 20 + 20;
result = a + b;
QString task = QString("%1 + %2").arg(a).arg(b);
ui->LblTask->setText(task);
ui->EdtInput->setFocus();
}
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
ui(new Ui::MainWindow) {
ui->setupUi(this);
srand((unsigned)time(NULL));
connect(ui->CmdCheckNew, SIGNAL(clicked()),
SLOT(CmdCheckNewClicked()));
connect(ui->CmdQuit, SIGNAL(clicked()), SLOT(close()));
}
MainWindow::~MainWindow() {
delete ui;
}
Кроме того, при дальнейшем использовании этого приложения, при отправке результатов, эта кнопка не выполняется должным образом каждый раз.У меня действительно нет больше идей для дальнейшей отладки.