Help - Search - Members - Calendar
Full Version: QSplitter missing in PyQt on the Zaurus
OESF Portables Forum > Everything Else > Archived Forums > Distros, Development, and Model Specific Forums > Zaurus - Everything Development > Python
Hi all,

The following Python script runs fine on the big box but fails on the Z, saying name 'QSplitter' is not defined:
#!/usr/bin/env python
import sys
from qt import *
split=QSplitter(Qt.Vertical, None)
label1.setText("Test 1")
label2.setText("Test 2")

Further, grep QSplitter `ipkg files python-pyqt` returns nothing - so the class isn't even mentioned in the Zaurus implementation. The Python packages I'm using come from the 3.3.6-pre1 feed.

Given that QSplitter is such a basic piece of UI I'm quite puzzled as to why it is absent. I can work around this limitation for now, fortunately, but someday I may well need a split pane so it's quite discomforting to see it missing. Is it perhaps there and I'm just looking in the wrong place? Has it been deprecated & replaced by something else? Can anyone provide an explanation? Any advice appreciated.

Qt/Embedded is based on features which you can enable or disable in a particular build. One of Sharps less bright decisions was to exclude the Splitter out of their version of libqte2 hence it isn't available from PyQt.

If it wasn't for compatibility, we would've reenabled the Splitter (which we consider an important UI element - especially for tiny displays) already. We will most certainly do it in Opie 2.
Thanks for the clarification. I've since discovered that grep QSplitter /opt/QtPalmtop/lib/ also yields nothing. I started researching Qtopia docs looking for a clue; your reply saved me a lot of time.

I've discovered another omission: the QDragObject class does exist but all versions of the drag() method seem to be missing. They throw AttributeErrors in Python and grep drag indicates that the class has source() and target() methods but no drag() - as far as I can tell.

I did find a list of Qtopia limitations on the Trolltech web site but it doesn't say anything about QDragObject. Pretty puzzling if you ask me. Does anyone have experience with QDragObject or QTextDrag under Qtopia?

OK, the Qtopia Overview says:
The modules removed from Qt due to their large size, speed or because they do not belong or are not necessary on an embedded device. For some of the modules, a description is provided if it is not obvious why this was left out of the Qt/Embedded offering for Qtopia.
It then lists drag and drop among those modules like so:
UI:  QTextCodec modules, drag and drop, free type fonts, extra desktop styles (i.e. Motif) were replaced by Qtopia style plugins
I conclude that drag & drop is not available in Qtopia. Can anyone confirm this?

In any case, the semi-complete QTextDrag implementation has just cost me quite a lot of time. Qtopia docs say if you're using whatever's not supposed to be available you'll get a compile error. How come, then, that PyQt compiles and produces this (
class QTextDrag(QDragObject):
       def __init__(self,*args):
Is this an Opie-specific libqte2 with a half-baked QDragObject?

No idea offhand. From our qte-config.h it seems drag and drop is completely disabled. Could be a bug in the sip features file we use.
I've been trying to teach myself programming in Python/PyQt, and found out that QSplitter was missing from the Qtopia in Zaurus.

However, other applications like Ko/Pi and TreeExplorer Qt use the splitter UI. Is this a custom widget built from scratch? If so, is there some way to bridge this into PyQt? Or am I missing something totally?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2018 Invision Power Services, Inc.