2

でのカスタム メニューQListWidgetの接続に問題があります。接続関数が false を返します。コードは次のとおりです。

という名前のメイン ウィンドウ クラスがありMainWindowます。そのコンストラクターには、この行があります

connect(ui->notesWidget, SIGNAL(customContextMenuRequested(QPoint &)), 
        this, SLOT(contextMenuforNotesArea(QPoint &)));

どこnotesWidgetに記載されていますかQListWidget

ContextMenuforNotesArea(QPoint &)このように定義されています

class MainWindow : public QMainWindow
{
public slots:
    void contextMenuforNotesArea(QPoint &pos);
};

void MainWindow::contextMenuforNotesArea(const QPoint &pos){
    QMessageBox::information(this, "a", "the function has been finally called");
    QMenu contextMenu(tr("Context menu"), this);
    contextMenu.addAction(new QAction(tr("Hello"), this));
    contextMenu.exec(mapToGlobal(pos));
}

contextMenuまた、フォーム デザイナーのプロパティも変更しましlistWidgetた。customContextMenu

4

1 に答える 1

0

ヘッダー ファイルで次のように SLOT 署名を変更します。

void contextMenuforNotesArea(const QPoint &pos);

また、コンストラクターで接続を行う場合は、の呼び出し後に行うことを確認してくださいsetupUi

于 2012-11-21T11:28:30.990 に答える