簡體   English   中英

為什么Qt看不到我的插槽?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM