[英]Why doesn't Qt see my slot?
我正在嘗試使用以下代碼向樹添加上下文菜單:
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')
我究竟做錯了什么?
我究竟做錯了什么?
如果省略將插槽聲明為實際插槽,則可能會發生這種情況。 您既可以使用Q_SLOTS
宏,也可以只使用slots
。 在你的情況下,后者更適合,因為它只是一個應用程序和一個主窗口。
您還需要確保不要忘記在頭文件中使用Q_OBJECT
宏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.