ari*_*kan 6 c++ qt qlineedit qt-signals qtcore
我是Qt的新手.我正在尝试实现一个非常简单的计算器程序.只是想放一个按钮,当它点击时,我想要它打印"Hello,World!" 到下一行编辑.当我只有一个按钮时工作正常,但是当我添加第二个按钮时,它不能编译.因为我正在编写一个计算器,所以我需要这些按钮.
以下是错误:
C:\Users\user\Desktop\Calc\build-Calc-Desktop_Qt_5_3_0_MinGW_32bit-Debug\debug\moc_mainwindow.o:-1: In function `ZN10MainWindow18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv':
C:\Users\user\Desktop\Calc\build-Calc-Desktop_Qt_5_3_0_MinGW_32bit-Debug\debug\moc_mainwindow.cpp:75: error: undefined reference to `MainWindow::on_pushButton_clicked()'
C:\Users\user\Desktop\Calc\build-Calc-Desktop_Qt_5_3_0_MinGW_32bit-Debug\debug\moc_mainwindow.cpp:76: error: undefined reference to `MainWindow::on_pushButton_2_clicked()'
Run Code Online (Sandbox Code Playgroud)
这是MainWindow方法:
void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
MainWindow *_t = static_cast<MainWindow *>(_o);
switch (_id) {
case 0: _t->on_pushButton_clicked(); break;
case 1: _t->on_pushButton_2_clicked(); break;
case 2: _t->on_pushButton_11_clicked(); break;
default: ;
}
}
Q_UNUSED(_a);
}
Run Code Online (Sandbox Code Playgroud)
这是我如何建立连接:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
// this is the problematic part
void MainWindow::on_pushButton_11_clicked()
{
ui->lineEdit->setText("Hello, World!");
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这一问题?感谢您的时间.
//这是有问题的部分
void MainWindow :: on_pushButton_11_clicked()
确实.
您错过了以下两种方法的实现:
MainWindow::on_pushButton_clicked()
{
ui->lineEdit->setText("Hello, World 2!");
}
Run Code Online (Sandbox Code Playgroud)
和
MainWindow::on_pushButton_2_clicked()
{
ui->lineEdit->setText("Hello, World 3!");
}
Run Code Online (Sandbox Code Playgroud)
所以,看起来你最终有三个插槽而不是两个插槽.您需要根据自己的愿望实施其他人.请注意,对于您计划在其中执行的任何操作,文本仅位于占位符之上.