gpt4 book ai didi

c++ - 在 Qt 4 中创建插槽时的模板问题

转载 作者:搜寻专家 更新时间:2023-10-31 01:26:35 24 4
gpt4 key购买 nike

我正在尝试为信号/插槽连接创建一个类(旧语法,Qt 4.8),但我做错了,因为我不断收到模板错误:本地类中成员模板的无效声明...这显然与 Q_OBJECT 宏有关...我该怎么办?这是一个建模程序:

#include <QtGui>
#include <QtCore>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QWidget mw;
mw.setWindowTitle("Main Window");
mw.resize(400, 400);
mw.show();

QLabel label ("Enter something:", &mw);
label.setAlignment(Qt::AlignHCenter);
label.show();

QLineEdit line (&mw);
line.show();

QString a = line.text();

QTextEdit text (&mw);
text.show();

class MyObject : public QObject
{
Q_OBJECT /* the problem is somewhere here... */

public:
QTextEdit text;
QString a;

public slots:
void onClicked() {
text.setText(a);
}
};

QPushButton btn ("Convert", &mw);
QObject::connect(
&btn,
SIGNAL(clicked()),
this,
SLOT(onClicked()));
btn.show();

QVBoxLayout layout_mw;

layout_mw.addWidget(&label);
layout_mw.addWidget(&line);
layout_mw.addWidget(&btn);
layout_mw.addWidget(&text);

mw.setLayout(&layout_mw);

return app.exec();

}

最佳答案

Qt 的MOC 既不能处理嵌套类也不能处理局部类。您必须将类定义移到 main 之外。 The documentation仅提及嵌套类,但该限制也适用于本地类。

关于c++ - 在 Qt 4 中创建插槽时的模板问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55099239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com