Hi,
ich versuche gerade ein dynamisch erzeugtes PopupMenu mit ebenso dynamisch erzeugten Unter(Popup)menus zu programmieren. Alle Untermenupunkte werden per ID durchnummeriert beim erzeugen. Aber wenn ich mir mit activated(int) den Untermenupunkt übergeben lassen will, bekomme ich immer nur die ID des Übergeordneten (parent) Punktes.
Weiß jemand wie ich an die unteren Ebenen rankomme?
Danke schon mal,
Andreas
[gelöst] QPopupMenu: activated(int), keine untermenupunkte
-
HiroProtagonist
- Beiträge: 7
- Registriert: 14. Juli 2005 09:08
[gelöst] QPopupMenu: activated(int), keine untermenupunkte
Zuletzt geändert von HiroProtagonist am 24. Juli 2005 22:01, insgesamt 1-mal geändert.
-
HiroProtagonist
- Beiträge: 7
- Registriert: 14. Juli 2005 09:08
Popup Menü
Hallo,
Könntest du vielleicht mal zeigen wie du das Popup Menü erstellst!?
lg g
Könntest du vielleicht mal zeigen wie du das Popup Menü erstellst!?
lg g
-
HiroProtagonist
- Beiträge: 7
- Registriert: 14. Juli 2005 09:08
Bitte scheeeen:
Ich hoffe ich konnte helfen. Dieser Programmteil erhebt keinerlei Anspruch auf vollständigkeit. Es sind zum Beispiel noch keine Sonderfälle abgefangen (z. B. was passiert, wenn top() des einen Menupunktes das selbe beinhaltet wie ein zuvoriger anderer in name().)
Aber das Prinzip wird glaub ich deutlich....
Ich brauch das ganze im zusammenhang mit beliebig hinzuladbaren Funktionalitäten zu meinem Programm in Form von DLL's, die durch den Benutzer ansprechbar sein sollten. Dazu benutze ich diese dynamisch erstellten Menus.
Andras
Code: Alles auswählen
struct PopupConnector{
PopupConnector(QString n, QPopupMenu *p){
name=n;
ptr=p;
}
QString name;
QPopupMenu *ptr;
};
QPtrList<PopupConnector> conList;
QPtrList<MyMenuItem> allItems;
MyMenuItem *item;
QPopupMenu *menu;
bool found;
for(int i=0;i<allItems.count();i++){
found=false;
item=allItems.at(i);
if(item->top()==""){
topMenu->insertItem(item->name(),i+1,i+1);
}
else{
for(int j=0;j<conList.count();j++){
if(conList.at(j)->name==topit()){
found=true;
menu=conList.at(j)->ptr;
}
}
if(!found){
menu=new QPopupMenu(countryPopup);
topMenu->insertItem(item->top(),menu,0,0);
conList.append(new PopupConnector(item->top(),menu));
connect(menu,SIGNAL(activated(int)),this,SLOT(someMenuItemClicked(int)));
}
menu->insertItem(item->name(),i+1,i+1);
}
Ich hoffe ich konnte helfen. Dieser Programmteil erhebt keinerlei Anspruch auf vollständigkeit. Es sind zum Beispiel noch keine Sonderfälle abgefangen (z. B. was passiert, wenn top() des einen Menupunktes das selbe beinhaltet wie ein zuvoriger anderer in name().)
Aber das Prinzip wird glaub ich deutlich....
Ich brauch das ganze im zusammenhang mit beliebig hinzuladbaren Funktionalitäten zu meinem Programm in Form von DLL's, die durch den Benutzer ansprechbar sein sollten. Dazu benutze ich diese dynamisch erstellten Menus.
Andras