0

私の問題は、ファイルをロードするメニューを作成することです。これが私のコードです:

QStringList fileNameList;
fileNameList << "file1" << "file2" << "file3";
QMenuBar *menubar = new QMenuBar();
QMenu *menu = menubar->addMenu("File");
QMenu *load = menu->addMenu("Load");
foreach (QString fileName, fileNameList) {
    QAction *loadFile = new QAction(fileName, this);
    load->addAction(loadFile);
    connect(load,SIGNAL(triggered(QAction*)),this, SLOT(load(QAction*)));
}

そしてスロット:

void MainWindow::load(QAction* action) {
    qDebug() << action->text();
}

アクションボタンをクリックすると、qDebug に次のように表示されます。

"file1"
"file1"
"file1"

しかし、そのアクションを実行する必要があるのは 1 回だけです。QAction には、その名前を取得できるシグナルがありません。これを解決するには?ありがとうございました!

4

1 に答える 1