Невозможно напечатать текст из строки, отредактированной до метки в Qt C ++ - PullRequest
0 голосов
/ 18 сентября 2018

Я недавно начал разрабатывать в 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 () или это соединение сигналов и слотов?

1 Ответ

0 голосов
/ 18 сентября 2018

Просто измените функцию setText на

void MainWindow::setText()
{
    QString temp = ui->inputText->text();
    ui->displayLabel->setText(temp);    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...