2

我正在使用 C++ 和 Qt 制作单词复制器。我这样做是为了测试,所以不要讨厌!我当前的代码,用于在单击按钮时发出信号是

void MainWindow::on_pushButton_clicked() {

QObject::connect(ui->pushButton, SIGNAL(clicked()), ui->textEdit, SLOT(setText(ui->lineEdit->text())));
}

我希望 textEdit 将其文本更改为 lineEdit * spinbox->value() 我有以下内容

#include "ui_mainwindow.h"
#include <QtCore>
#include <QtGui>
#include <string>

这是我在调试模式下运行时的错误

QObject::connect: No such slot QTextEdit::setText(ui->lineEdit->text()) in ..\wordX\mainwindow.cpp:22
QObject::connect:  (sender name:   'pushButton')
QObject::connect:  (receiver name: 'textEdit')
4

1 回答 1

3

您为什么要尝试在那里建立连接,并且对于正确的连接语句,您无论如何都不传递值,您只需要指定类型,这意味着您无法将带有 QString 参数的插槽连接到点击信号(因为该信号不传递任何参数)。

现在,如果我没有错过任何您甚至不需要该连接的内容,您只需在此处设置文本,该插槽会自动连接pushButton的单击信号,因此只要单击该按钮就会执行:

void MainWindow::on_pushButton_clicked() {
//just set the text here
    ui->textEdit->setText(ui->lineEdit->text());
}

阅读文档中有关信号和插槽的更多信息,并询问是否有些事情不清楚。

于 2013-07-26T20:24:20.050 回答