无法将文本从行编辑打印到Qt C ++中的标签

时间:2018-09-18 00:23:59

标签: c++ qt

我最近开始在Qt for C ++中进行开发,因为我想更多地跨平台并使用gui开发应用程序。我正在尝试从用户输入的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 :(得分:1)

只需将setText函数更改为

void MainWindow::setText()
{
    QString temp = ui->inputText->text();
    ui->displayLabel->setText(temp);    
}