ユーザーの操作なしで QWidget に折りたたまれていない QMenu をポップアップしたい。現時点では、右クリックすると空の QWidget に QMenu が表示されます。contextMenuEvent(QContextMenuEvent *event) シグナルをプログラムで呼び出す方法はありますか?
別の方法として、メニューバーにメニューを追加することもできます。しかし、これは崩壊している。メニューを折りたたんで表示することはできますか?
どんなアイデアでもうれしいです。ありがとう!
編集:コードスニペット
TestMenu::TestMenu(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
//remove frame from widget
this->setWindowFlags(Qt::FramelessWindowHint );
//add menu
QMenu menu(this);
QAction* firstEntry = new QAction(tr("Ask a question"), this);
connect(firstEntry, SIGNAL(triggered()), this, SIGNAL(askCollegueDialogRequested()));
menu.addAction(firstEntry);
menu.popup(this->mapToGlobal(QPoint(0,0)));
menu.activateWindow();
}
メニューのない空のウィジェットしか表示されません。別のクラスからウィジェットの show() を呼び出します。問題は、QMenu が実際にはウィジェットに追加されていないことです。しかし、メニューバーを使用せずに追加する方法は今はわかりません:-(。