хорошо, я провел несколько тестов, и это то, что я нашел получил:
если вы создали какой-то связи слот сигнала, который вызывает функцию с указанной тех, если/иначе statmentsthe программа будет работать. это следующая программа я сделал:
dialog.h:
#ifndef DIALOG_H
#define DIALOG_H
#include "ui_dialog.h"
#include <QDialog>
class DialogClass : public QDialog, public Ui::Dialog
{
Q_OBJECT
public:
DialogClass(QWidget *parent = 0);
public slots:
void check();
};
#endif // DIALOG_H
dialog.cpp:
#include "dialog.h"
#include <QMessageBox>
DialogClass::DialogClass(QWidget *parent) : QDialog(parent)
{
setupUi(this);
connect(pushButton, SIGNAL(clicked()), this, SLOT(check()));
}
void DialogClass::check()
{
QString username = lineEdit->text();
QString password = lineEdit_2->text();
QMessageBox Failed;
Failed.setWindowFlags(Qt::FramelessWindowHint);
if(username == "Jon" && password == "12345")
{
Failed.setText("Login failed. Try again.");
Failed.exec();
} else {
Failed.setText(password);
Failed.exec();
}
}
и main.cpp
#include <QApplication>
#include <QMessageBox>
#include "dialog.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DialogClass w;
w.show();
return a.exec();
}
bassically, все, что я do делает класс диалога очень похожим на вашу главную функцию, только у моей кнопки есть кнопка dialog.ui имеет кнопку. После этого я использую кнопку, чтобы установить соединение с сигнальным слотом, которое гарантирует, что при нажатии этой кнопки будет вызываться функция check() (которая в основном выполняет ваш алгоритм if/else в слот), который проверяет, имя пользователя - «Jon», а пароль - «12345».
Почему ваша первоначальная реализация не сработала?
Извините, но я не уверен.
Однако этот подход должен работать. Я добавлю ответ, если я когда-нибудь выясню, почему утверждения if не собирались. Однако этот подход должен заставить ваше приложение работать.
счастливое кодирование!
Вы можете вывести 'username' и' password' с 'qDebug()' перед условием? Это поможет. – LogicStuff
Ваша логика довольно странная, почему вы считаете, что логин не удался для одной конкретной пары логинов/паролей? – demonplus
Я просто пытаюсь изучить базовые C++ и базовые qt. Для этого я просто пытаюсь выяснить, как общаться между ui и моим кодом, так как до этого я был полностью основан на терминале. – Tempuser221