[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: Re: [PyKDE] PyQt4 uic bug
From: Torsten Marek <shlomme () gmx ! net>
Date: 2006-03-23 12:24:40
Message-ID: 44229388.2020408 () gmx ! net
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
[Attachment #4 (multipart/mixed)]
Eric Gach wrote:
> Hi,
>
> There seems to be a problem with pyuic4 and generating the code when
> using QDockWidget. There's a setting that can be seen in the Qt Designer
> for QDockWidget that is called "docked". This isn't documented in the Qt
> documentation for QDockWidget, which is why it gave me so much trouble. :)
>
> It seems that when this setting is true (or 1 in the XML output), it
> calls the addDockWidget method of the window it's using to make sure the
> dock widget is properly docked in the designated area. The pyuic4
> program doesn't seem to pick up on this and add it into the code
> anywhere. I solved it myself by just adding this code:
>
> self.MainWindow.addDockWidget(QtCore.Qt.LeftDockWidgetArea,
> self.ui.dockWidget)
>
> I added this into my class that uses the uic generated code. Other than
> that, everything else seems to be working great!
>
> Thanks for the great work!
> Eric Gach
>
Hi,
This just happens if the dock widget happens to be in a main window, which was
not covered by my test suite.
Here's a patch that should fix the problem, could you test it?
best regards
Torsten
--
Torsten Marek <shlomme@gmx.net>
ID: A244C858 -- FP: 1902 0002 5DFC 856B F146 894C 7CC5 451E A244 C858
Keyserver: subkeys.pgp.net
["dockwidget-in-mw.diff" (text/plain)]
=== modified file 'a/uic/Compiler/qtproxies.py'
--- a/uic/Compiler/qtproxies.py
+++ b/uic/Compiler/qtproxies.py
@@ -170,6 +170,8 @@
class Qt(ProxyClass):
class CursorShape(LiteralProxyClass):
module = "QtCore.Qt"
+ class DockWidgetArea(LiteralProxyClass):
+ module = "QtCore.Qt"
class QListWidgetItem(ProxyClass):
module = "QtGui"
=== modified file 'a/uic/uiparser.py'
--- a/uic/uiparser.py
+++ b/uic/uiparser.py
@@ -169,7 +169,10 @@
self.stack.topwidget.setMenuBar(widget)
elif isinstance(widget, QtGui.QStatusBar):
self.stack.topwidget.setStatusBar(widget)
-
+ elif isinstance(widget, QtGui.QDockWidget):
+ dwArea = self.wprops.getAttribute(elem, "dockWidgetArea")
+ self.stack.topwidget.addDockWidget(
+ QtCore.Qt.DockWidgetArea(dwArea), widget)
def createSpacer(self, elem):
width = int(elem.findtext("property/size/width"))
["signature.asc" (application/pgp-signature)]
_______________________________________________
PyKDE mailing list PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic