Я недавно начал разрабатывать в Qt для C ++, потому что я хотел стать более кросс-платформенным и разрабатывать приложения с графическим интерфейсом. Я пытаюсь получить текст из lineEdit, который вводит пользователь, нажимает кнопку, и эта кнопка переключает дисплей для отображения того же текста в метке. Стоит отметить, что я занимаюсь разработкой в QT Creator, потому что у меня сейчас нет доступа к моему рабочему столу Windows.
Файл mainWindow.hpp практически используется по умолчанию, но я только что добавил «открытые слоты», чтобы связать объекты вместе.
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
public slots:
void setText();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
Файл main.cpp вообще не изменился.
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainWindow.cpp, вероятно, является наиболее важным файлом, и это, как мне кажется, проблема.
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->textBtn, SIGNAL(clicked(bool)), this, SLOT(setText()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::setText()
{
QString temp;
ui->inputText->textChanged(temp);
ui->displayLabel->setText(temp);
}
Понятия не имею, что происходит не так. Компилятор может правильно построить программу, но если я нажму кнопку, ничего не произойдет. Я делаю что-то не так с точки зрения функции setText () или это соединение сигналов и слотов?