gpt4 book ai didi

c++ - QConnect 在 Qt Creator 的 Combobox 上找不到这样的插槽

转载 作者:行者123 更新时间:2023-11-28 06:43:32 27 4
gpt4 key购买 nike

  • 我创建了一个继承自QWidget的窗口
  • 我为该窗口设置了网格布局
  • 我在该窗口内的公共(public)插槽中创建了一个名为 handleHeroChange(int index) 的函数
  • 我添加了一个 Qcombobox 来调用函数 handleHeroChange(int index)

Qtcreator 不断告诉:

**QObject::connect: No such slot QWidget::handleHeroChange(int) in ../Testing/Window.cpp:92**

我做错了什么?

代码:

//Window.h
class Window : public QWidget
{
QGraphicsPixmapItem* avatar;
QGraphicsTextItem* heroNameItem;
QGraphicsTextItem* heroStrItem;
QGraphicsTextItem* heroDexItem;
QGraphicsTextItem* herointelItem;
public:
Window(QWidget *parent = 0);
public slots:
void handleHeroChange(int);
};

//Window.cpp
Window::Window(QWidget *parent)
: QWidget(parent)
{

QGridLayout *grid = new QGridLayout(this);
QComboBox *comboHeroClass = new QComboBox();
comboHeroClass->addItem("Witcher");
comboHeroClass->addItem("Maurander");
comboHeroClass->setCurrentIndex(1);
grid->addWidget(comboHeroClass, 2,3,1,1);
QComboBox::connect(comboHeroClass, SIGNAL(currentIndexChanged(int)),this, SLOT(handleHeroChange(int)));
}

void Window::handleHeroChange(int index){
QPixmap myImage;
if(index == 0){

}else if(index == 1){

}
}

最佳答案

class Window : public QWidget
{
Q_OBJECT

将不带分号的 Q_OBJECT 宏添加到您的类中并重建您的项目。

如果没有这个宏,moc 将无法找到您的类并且不会创建您的插槽(以及其他一些东西)这就是您收到错误的原因:您看到了您的插槽但它不存在并且出现运行时错误

关于c++ - QConnect 在 Qt Creator 的 Combobox 上找不到这样的插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25470635/

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