ich möchte eine Qt3(KDE3) Anwendung an Qt4 anpassen. Ich bin dabei in der Anwendung die Klasse K3ListView durch die Klasse QTreeWidget zu ersetzen. Jetzt habe ich ein Problem mit dem Kontextmenü. Die Baumansicht besteht aus mehreren Spalten.
Es gibt zwei Kontextmenüs. Eines wenn man in der Baumansicht auf eine Element rechts klickt, und eines wenn man auf die Spaltenbezeichnung rechts klickt. Das Kontextmenü wenn man auf ein Baum-Element rechts klickt konnte ich anpassen, das funktioniert.
Ich weiß nicht welches "Signal" ich für das Kontextmenü der Spaltenbezeichnung verwenden muß.
Im alten Zustand (K3ListView Klasse) sieht der Quelltext bzgl. Kontextmenü/Signal für rechts Klick in der Baumansicht so aus:
Code: Alles auswählen
connect(h_drView, SIGNAL(contextMenu(K3ListView*, QTreeWidgetItem*, const QPoint&)),
SLOT(slotArticleRMB(K3ListView*, QTreeWidgetItem*, const QPoint&)));
Code: Alles auswählen
h_drView->setContextMenuPolicy(Qt::CustomContextMenu);
connect(h_drView, SIGNAL(customContextMenuRequested(const QPoint&)),
SLOT(slotArticleRMB(const QPoint&)));
Welches Signal muß ich verwenden um ein Kontext Menü für die Spaltenbezeichnung erstellen zu können?
Der alte Quelltext (K3ListView Klasse) für das Kontextmenü der Spaltenbezeichnung sieht so aus:
Code: Alles auswählen
// column selection RMB menu
mPopup = new QMenu( this );
mPopup->addTitle( i18n("View Columns") );
KnHwPmenuSize = mPopup->addAction( i18n("Line Count") );
KnHwPmenuSize->setCheckable(true);
KnHwPmenuScore = mPopup->addAction( i18n("Score") );
KnHwPmenuScore->setCheckable(true);
connect( KnHwPmenuSize, SIGNAL(toggled(bool)), this, SLOT(toggleColumnSize(bool)) );
connect( KnHwPmenuScore, SIGNAL(toggled(bool)), this, SLOT(toggleColumnScore(bool)) );
Ich habe versucht folgende Signale zu verwenden, sie werden allerdings nicht ausgelöst wenn ich in der Spaltenbezeichnung rechts klicke:
Code: Alles auswählen
connect(mPopup, SIGNAL(customContextMenuRequested(const QPoint)), this, SLOT(slotMPopup(const QPoint)));
connect(mPopup, SIGNAL(triggered(QAction *action)), this, SLOT(slotMPopup(QAction*)));
connect(this, SIGNAL(contextMenuEvent(QContextMenuEvent*)), this, SLOT(slotMPopup(QContextMenuEvent*)));
Es ist eine Opensource Anwendung, die Quellen liegen auf Github, falls jemand zum besseren Verständnis mehr Quelltext dazu anschauen möchte, kann ich einen Link dazu posten.
mike