ich versuche gerade einer Applikation im Filemenü die zuletzt genutzten Dateien hinzuzufügen. Mit Qt3 war das einfach, bei Qt4 gibt es ein Problem. Die einzelnen Menüpunkte bestehen aus QActions und ich kann sie auch einem Slot zuweisen, nur, wie stelle ich im Slot fest, von welchem QAction das jetzt getriggert wurde? Hier mal ein Stückchen Code:
Zuerst das Menü jedesmal neu aufbauen:
Code: Alles auswählen
//////////////////////////////////////////////////////////////////////////
// Menu with recent files
void MainWindow::updateFileMenu()
{
fileMenu->clear();
fileMenu->addAction(newFileAction);
...
...
if (m_slRecentFiles.count()>0)
{
fileMenu->addSeparator();
for ( int i=0; i<m_slRecentFiles.count(); ++i )
{
if (recentFileAction[i]!=NULL)
delete recentFileAction[i];
recentFileAction[i] = new QAction(QString("&%1 " + m_slRecentFiles[i]).arg(i), this);
connect(recentFileAction[i], SIGNAL(triggered()), this, SLOT(OnOpenRecentFile()));
fileMenu->addAction(recentFileAction[i]);
}
}
}
Code: Alles auswählen
//////////////////////////////////////////////////////////////////////////
// Call of one of the recent files
void MainWindow::OnOpenRecentFile()
{
QAction* action = fileMenu->activeAction();
if (action==NULL)
return;
// do what to do
}
Wenn ich Antwort habe, werde ich es auf jeden Fall hier kundtun, denn IMHO funktioniert hier was nicht oder es fehlt was.