gpt4 book ai didi

c++ - 为什么 Qt 看不到我的插槽?

转载 作者:行者123 更新时间:2023-11-30 02:50:02 24 4
gpt4 key购买 nike

我正在尝试使用以下代码将上下文菜单添加到树中:

void MainWindow::FileTreeContextMenu(const QPoint& pos)
{
QPoint globalPos = ui->fileTree->viewport()->mapToGlobal(pos);
QMenu menu;
menu.addAction("New Group");

QAction* selectedItem = menu.exec(globalPos);
}

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

ui->fileTree->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->fileTree,
SIGNAL(customContextMenuRequested(const QPoint&)),
this,
SLOT(FileTreeContextMenu(const QPoint&)));
}

但是,当我运行它时,出现以下错误:

QObject::connect: No such slot MainWindow::FileTreeContextMenu(const QPoint&) 
in ..\src\Fixer\mainwindow.cpp:23
QObject::connect: (sender name: 'fileTree')
QObject::connect: (receiver name: 'MainWindow')

我做错了什么?

最佳答案

What am I doing wrong?

如果您忽略将插槽声明为真实插槽,则可能会发生这种情况。您可以为此使用 Q_SLOTS 宏,也可以只使用 slots。在您的情况下,后者更合适,因为它只是一个应用程序和一个主窗口。

您还需要确保不要忘记在头文件中使用 Q_OBJECT 宏。

关于c++ - 为什么 Qt 看不到我的插槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770402/

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