[gelöst] QtPieMenu (Kontextmenu) crashed
Verfasst: 12. Juni 2010 14:08
Hi habe zwei Widget in denen ich je ein PieMenu erstelle und mit RechtsKlick aufrufe. Beide Widget werden im Hauptprogramm im StackedWidget verwaltet.
Problem:
Im zweiten Widget stürzt meine Anwendung ab wenn ich nach Öffnen des PieMenu´s mit einem Klick ausserhalb des PieMenu dieses nur Schliessen möchte.
Hier mal die Quelltextausschnitte:
Widget1 *.h
Widget1 *.cpp
Widget2 *.h
Widget2 *.cpp

Problem:
Im zweiten Widget stürzt meine Anwendung ab wenn ich nach Öffnen des PieMenu´s mit einem Klick ausserhalb des PieMenu dieses nur Schliessen möchte.
Hier mal die Quelltextausschnitte:
Widget1 *.h
Code: Alles auswählen
#include "src/menu/qtpiemenu.h"
class texteingabe : public QWidget {
Q_OBJECT
protected:
void pieMenu();
void mousePressEvent(QMouseEvent *e);
public slots:
void dummy();
private:
//! PieMenu
QtPieMenu *p;
QtPieMenu *menuNavi;Code: Alles auswählen
#include "src/menu/qtpiemenu.h"
#include "src/menu/qtpieitem.h"
void texteingabe::pieMenu()
{
p = new QtPieMenu("Root menu", this, "Root menu",15,130);
p->insertItem(QIcon(QPixmap(":/iconAll/images/iconAll/auswertung.png")),
tr("Auswerten"),
this,
SLOT(dummy()));
menuNavi = new QtPieMenu(QIcon(QPixmap(":/iconSet1/images/iconset1/navigation.png")),
tr(" Navi"),p,"Navigation",25,180);
menuNavi->insertItem(QIcon(QPixmap(":/iconSet1/images/iconset1/text_eingeben.png")),
tr(" Eingabe"),this,SLOT(dummy()));
p->insertItem(menuNavi);
}
void texteingabe::dummy(){}
void texteingabe::mousePressEvent(QMouseEvent *e)
{
if ( e->button() & Qt::RightButton ) {
pieMenu();
p->popup(e->globalPos());
return;
}
this->mousePressEvent( e );
}Code: Alles auswählen
#include "src/menu/qtpiemenu.h"
class konfiguration : public QWidget {
Q_OBJECT
protected:
void pieMenu();
void mousePressEvent(QMouseEvent *e);
public slots:
void dummy2();
private:
//! PieMenu
QtPieMenu *p;
QtPieMenu *menuNavi;Code: Alles auswählen
#include "src/menu/qtpiemenu.h"
#include "src/menu/qtpieitem.h"
void konfiguration::pieMenu()
{
p = new QtPieMenu("Root menu", this, "Root menu",15,130);
p->insertItem(QIcon(QPixmap(":/iconSet1/images/iconset1/ausgabe_konfig.png")),
tr(" Auswertung"),
this,
SLOT(dummy2()));
menuNavi = new QtPieMenu(QIcon(QPixmap(":/iconSet1/images/iconset1/navigation.png")),
tr(" Navi"),p,"Navigation",25,180);
menuNavi->insertItem(QIcon(QPixmap(":/iconSet1/images/iconset1/text_eingeben.png")),
tr(" Eingabe"),this,SLOT(dummy2()));
p->insertItem(menuNavi);
}
void konfiguration::dummy2(){}
void konfiguration::mousePressEvent(QMouseEvent *e)
{
if ( e->button() & Qt::RightButton ) {
pieMenu();
p->popup(e->globalPos());
return;
}
this->mousePressEvent( e );
}