0
我的問題是製作一個菜單來加載文件。這裏是我的代碼:QT:來自QMenu和QAction的信號
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"
但我需要運行的動作只有一次! QAction沒有一個信號,我可以從它的名字得到 。如何解決這個問題?謝謝!
錯誤類型:將'connect(load,'替換爲'connect(loadFile,' –