我正在使用 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>
这是我在 Debug模式下运行它时出现的错误
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')
最佳答案
为什么你要尝试在那里建立连接,并且对于正确的连接语句,你无论如何都不传递值,你只需要指定类型,这意味着你无法连接采用 QString 的插槽单击信号的参数(因为该信号不传递任何参数)。
现在,如果我没有错过任何内容,您甚至不需要该连接,只需在那里设置文本即可,该插槽是 auto-connected到 pushButton 的单击信号,因此只要单击该按钮,它就会执行:
void MainWindow::on_pushButton_clicked() {
//just set the text here
ui->textEdit->setText(ui->lineEdit->text());
}
在 documentation 中了解有关信号和槽的更多信息如果有些事情不清楚,请询问。
关于C++ Qt 插槽错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17890252/