3

動的メニューを作成するとき、特定のインデックス値に応答するために関連付けられた信号が必要になることがよくあります(たとえば、そのメニュー項目に関連付けられたデータベース行識別子)。これを行うには、以下のコードを使用する必要があるようです。これはハックのように感じます。

QActionGroup *oneOffgroup = new QActionGroup(menu);
QAction *action = new QAction(tr("New text form..."),menu);
action->setData( writingSystem.id() );
oneOffgroup->addAction(action);
connect( oneOffgroup, SIGNAL(triggered(QAction*)), this, SLOT(newTextForm(QAction*)) );
submenu->addAction(action);

この回答は、QMenu :: triggered(QAction *)シグナルを使用することを提案しています。ただし、そのメニューに送信されたすべての信号を整理する必要があることを意味します。(ただし、現在取り組んでいる状況ではなく、状況によっては問題ありません。)

4

0 に答える 0