Question on parenting plasma widgets

Armin Moradi amoradi at fedoraproject.org
Wed Jun 24 19:58:27 BST 2009


Hi list,

I'm writing a plasmoid and I have trouble adding a Plasma.TabBar to
it.  This is the code:


    def setupUi(self):
        self.mainLayout = QGraphicsLinearLayout(Qt.Vertical)
        self.statusLayout = QGraphicsLinearLayout(Qt.Vertical)

        self.tabBar = Plasma.TabBar(self.applet)
        self.tabBar.addTab('status', self.statusLayout)

        self.mainLayout.addItem(self.tabBar)
        self.setLayout(self.mainLayout)



This code crashes when I close plasmoidviewer with the following
backtrace (the plasmoid runs, but crashes when I close it):


Application: Plasma Widget Viewer (plasmoidviewer), signal: Segmentation fault
[KCrash Handler]
#5  0x0000000000000031 in ?? ()
#6  0x00000036bdf89a4a in QGraphicsWidget::~QGraphicsWidget
(this=0x3102170, __in_chrg=<value optimized out>) at
graphicsview/qgraphicswidget.cpp:294
#7  0x00000036bdf45ec7 in QGraphicsItem::~QGraphicsItem (this=<value
optimized out>, __in_chrg=<value optimized out>) at
graphicsview/qgraphicsitem.cpp:865
#8  0x00000036bdf89795 in QGraphicsWidget::~QGraphicsWidget
(this=0x3037500, __in_chrg=<value optimized out>) at
graphicsview/qgraphicswidget.cpp:309
#9  0x00007fe0e98ab1b3 in sipPlasma_TabBar::~sipPlasma_TabBar() ()
from /usr/lib64/python2.6/site-packages/PyKDE4/plasma.so
#10 0x00000036bdf45ec7 in QGraphicsItem::~QGraphicsItem (this=<value
optimized out>, __in_chrg=<value optimized out>) at
graphicsview/qgraphicsitem.cpp:865
#11 0x00000036bdf89795 in QGraphicsWidget::~QGraphicsWidget
(this=0x2890f90, __in_chrg=<value optimized out>) at
graphicsview/qgraphicswidget.cpp:309
#12 0x00000039fc2c54ab in Plasma::Applet::~Applet (this=0x2890f90,
__in_chrg=<value optimized out>) at
/usr/src/debug/kdelibs-4.2.90/plasma/applet.cpp:187
#13 0x00000039fc2d5467 in
qDeleteAll<QList<Plasma::Applet*>::const_iterator> (end=<value
optimized out>, begin=<value optimized out>) at
/usr/include/QtCore/qalgorithms.h:350
#14 qDeleteAll<QList<Plasma::Applet*> > (end=<value optimized out>,
begin=<value optimized out>) at /usr/include/QtCore/qalgorithms.h:358
#15 ~ContainmentPrivate (end=<value optimized out>, begin=<value
optimized out>) at
/usr/src/debug/kdelibs-4.2.90/plasma/private/containment_p.h:57
#16 Plasma::Containment::~Containment (end=<value optimized out>,
begin=<value optimized out>) at
/usr/src/debug/kdelibs-4.2.90/plasma/containment.cpp:118
#17 0x00000039fc2e3a1f in
qDeleteAll<QList<Plasma::Containment*>::const_iterator> (end=<value
optimized out>, begin=<value optimized out>) at
/usr/include/QtCore/qalgorithms.h:350
#18 qDeleteAll<QList<Plasma::Containment*> > (end=<value optimized
out>, begin=<value optimized out>) at
/usr/include/QtCore/qalgorithms.h:358
#19 ~CoronaPrivate (end=<value optimized out>, begin=<value optimized
out>) at /usr/src/debug/kdelibs-4.2.90/plasma/corona.cpp:76
#20 Plasma::Corona::~Corona (end=<value optimized out>, begin=<value
optimized out>) at /usr/src/debug/kdelibs-4.2.90/plasma/corona.cpp:275
#21 0x00000000004084b2 in ~FullView (this=<value optimized out>,
__in_chrg=<value optimized out>) at
/usr/src/debug/kdebase-workspace-4.2.90/plasma/shells/plasmoidviewer/fullview.h:34
#22 main (this=<value optimized out>, __in_chrg=<value optimized out>)
at /usr/src/debug/kdebase-workspace-4.2.90/plasma/shells/plasmoidviewer/main.cpp:164
Warning: the current language does not match this frame.


I can't really understand this backtrace, but as much help as I could
get, I understood that the problem is my parenting style, but I have
no idea how to solve it.  Could anyone shed some light on this code?

Thanks,
-- 
Armin Moradi




More information about the kde-core-devel mailing list