473,770 Members | 1,523 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Yet another GUI toolkit question...

....with a twist.

I'm undertaking my first semi-substantial Python GUI application after a
long time dabbling with the language.

I'm fairly experienced with Tcl/Tk, so Tkinter seems the obvious choice
to reduce my Python learning curve. However, my Tcl applications
typically make use of a *lot* of extensions to the core widget set, such
as BWidgets, tablelist, and Tile.

I've found minimal Tkinter wrappers for all of these extensions, but
they are all labelled "experiment al," lightly documented at best, and
little-used (as far as I can tell) by Python developers.

So: my question is, would it be more productive for me to wrestle with
these extensions when there doesn't seem to be much constituency for
their use, or would it be better/faster/more efficient for me to start
scaling the wxPython mountain?

For what it's worth, my application has to run on OS X and Windows, and
will be commercial, so this combination of requirements rules out
PyGTK/PyQt/just about every other cross-platform GUI toolkit.

Advice, especially from those Tkinter devs who look beyond the core
widget set for their apps, is appreciated!

--
Kevin Walzer
iReveal: File Search Tool
http://www.wordtech-software.com
Feb 11 '06
26 1920
On 2/11/06, Kevin Walzer <sw@wordtech-software.com> wrote:
Dabo looks interesting, but isn't it mainly for database applications?
Has any other kind of application been developed with it? Also, it seems
very Windows/Linux-centric. Is anyone using it on OS X?


The Dabo demo comes with several games written that have no database
stuff at all. According to the developers (one of whom develops on OS
X, to answer your other question), they started out creating a tool
for database apps, but the response has been so strong on the UI side
that they've spent most of their time making the dabo.ui module able
to be used by iteself.

I don't do any development work with databases, and I've used Dabo for
several internal apps. The stuff I used to write in wxPython I now
write in Dabo.

--

# p.d.
Feb 11 '06 #21
On 2/11/06, Kevin Walzer <sw@wordtech-software.com> wrote:
Also, it seems
very Windows/Linux-centric. Is anyone using it on OS X?


I almost forgot: take a look at this screencast:

http://leafe.com/screencasts/sizers2.html

It's the second part of a demonstration on using sizers in the Dabo
visual designer tool. The first part was done on Linux, and the saved
file was copied over unchanged to OS X, where the demo was completed.

--

# p.d.
Feb 11 '06 #22
On 2/11/06, Kevin Walzer <sw@wordtech-software.com> wrote:
Chris Mellon wrote:

If you're planning on selling an application, especially to OS X
users, then Tk is absolutely out of the question. It doesn't have even
the slightest resemblence to native behavior, and lacks the polish and
flash that occasionally lets a non-native app get away with it. Given
the limits you've stated, I believe your only options are wxPython and
writting 2 guis using PyWin/PyObjC. The second option requires
knowledge of the native tool sets for the respective platforms, so if
you don't have that I can only suggest wxPython. If you're used to Tk
you will face a learning curve, and you will need to look for or write
replacements for the custom widgets you've been using.

Do these screenshots look "non-native" to you?


Yes, actually. But thats not the point, and a trivial dialog isn't
enough to really judge Tile anyway.

http://www.wordtech-software.com/ireveal-mac.png
http://www.wordtech-software.com/ireveal-windows.png
http://www.wordtech-software.com/ireveal-linux.png

This application was developed in Tcl/Tk.

I think Tkinter is lagging behind Tk itself in terms of its advances
with theming and native look and feel, especially on OS X and Win XP.
Certainly a lot of Python developers don't seem well-informed about the
work that has been done to bring Tk back into the modern age. The
wrappers I mentioned above (some at a site that is offline but should be
back online shortly, I'm told) are bleeding-edge in Tkinter terms but
reflect work that started a couple of years ago in Tk. (The extension is
called "Tile" and will be part of the Tk core when it's released at v. 8.5).

That doesn't mean wxPython is out of the question. What I'm trying to
figure out is whether I will be up and running faster with Tkinter +
Tile (leaving me mainly to improve my proficiency with Python itself and
translate Tk into a Python idiom) or whether I should learn wxPython,
with its vastly different GUI paradigm, as well as Python.

That depends almost totally on you and your skills, doesn't it? I'm an
unabashed fan of wxPython, so naturally I lean that way, but I
wouldn't deny that is has a learning curve. It's famous "C++ like API"
has seen vast improvement in the last few releases, by the way, and is
much more pythonic than a lot of people seem to believe - no more
from wxPython import *, for example. I certainly find it's API more
pythonic than Tkinters.
If Tkinter + Tile + Bwidgets + Tablelist does the job, as I think it may
(and as it does with regular Tcl/Tk), then I will probably stick with
that. And perhaps I can then contribute some documentation somewhere on
how to use the Tile widgets in a Tkinter application, complete with
screen shots and working code for others to use. Such documentation is
sorely lacking right now.

The vast range of available GUI toolkits is one thing that partially
offsets Python's many virtues as a programming language. I realize I was
stepping into a fire swamp by even broaching the question. However, the
application I'm envisioning (accessing web services from a desktop GUI)
will benefit from the abundant Python libraries/wrappers that have
already been written, which are mostly lacking (or which would require
me to roll my own) in Tcl.

I can't possibly see how an available range of GUI toolkits is a
detriment to a *language*. I can see (but don't neccesarily agree)
that is detrimental to a desktop environment or whatever, but not a
language. By that standard C is the worst language to ever exist, C++
only marginally better, and stuff like Visual FoxPro the best of all.


--
Kevin Walzer
iReveal: File Search Tool
http://www.wordtech-software.com

Feb 11 '06 #23
Kevin Walzer:
Do these screenshots look "non-native" to you?

http://www.wordtech-software.com/ireveal-mac.png
Yes. I don't use a Mac much but the following are really obvious.
The column header icons don't fit within the header. The scroll bar is
squished up too thin. The icons are from Windows.
http://www.wordtech-software.com/ireveal-windows.png
Yes. The archetype here is Windows XP Explorer. Icons too large.
Icons jaggy due to lack of alpha compositing. Icon text too long but no
label for entry field. Weird discontinuity between toolbar and list.
List header too tall. List has alternating background. Status bar not
indented. No resize indicator in status bar. Line between columns.
Vertical scroll bar ends at bottom of horizontal scroll bar rather than
top. Scroll bars use dithered background rather than graduated smooth
background.
http://www.wordtech-software.com/ireveal-linux.png


Totally native. If you are still using a 10 year old desktop
environment.

Neil
Feb 12 '06 #24
Kevin Walzer <sw@wordtech-software.com> writes:
[...]
Commercial Qt is a little out of my price range.


Commercial *PyQt* (including a license for Qt for use only with PyQt)
is $400 (USD) per developer (plus an extra $300/year if you want
upgrades). That's compared to Qt license for use *with C++* varying
from $1690 to $6260. So PyQt is 4-15 times cheaper than old-fashioned
C++ Qt!

http://www.thekompany.com/products/blackadder/
Apparently you get mxODBC in that price, too. And the Blackadder
development environment itself, of course, though personally I
wouldn't use it.

PyQt 4 now seems to exist, though not as a stable release yet, so I
imagine it'll be a bit longer untill there's a release of Blackadder
that supports Qt 4. I recall the PyQt 2 --> PyQt 3 upgrade as being
fairly painless (in terms of code changes), though.
John
Feb 13 '06 #25
On Monday 13 February 2006 12:33 am, John J. Lee wrote:
Kevin Walzer <sw@wordtech-software.com> writes:
[...]
Commercial Qt is a little out of my price range.


Commercial *PyQt* (including a license for Qt for use only with PyQt)
is $400 (USD) per developer (plus an extra $300/year if you want
upgrades). That's compared to Qt license for use *with C++* varying
from $1690 to $6260. So PyQt is 4-15 times cheaper than old-fashioned
C++ Qt!

http://www.thekompany.com/products/blackadder/
Apparently you get mxODBC in that price, too. And the Blackadder
development environment itself, of course, though personally I
wouldn't use it.

PyQt 4 now seems to exist, though not as a stable release yet, so I
imagine it'll be a bit longer untill there's a release of Blackadder
that supports Qt 4. I recall the PyQt 2 --> PyQt 3 upgrade as being
fairly painless (in terms of code changes), though.


There will never be a release of Blackadder that supports PyQt4.

Phil
Feb 13 '06 #26
Phil Thompson <ph**@riverbank computing.co.uk > writes:
On Monday 13 February 2006 12:33 am, John J. Lee wrote:
Kevin Walzer <sw@wordtech-software.com> writes:
[...]
Commercial Qt is a little out of my price range.


Commercial *PyQt* (including a license for Qt for use only with PyQt)
is $400 (USD) per developer (plus an extra $300/year if you want
upgrades). That's compared to Qt license for use *with C++* varying
from $1690 to $6260. So PyQt is 4-15 times cheaper than old-fashioned
C++ Qt! [...] PyQt 4 now seems to exist, though not as a stable release yet, so I
imagine it'll be a bit longer untill there's a release of Blackadder
that supports Qt 4. I recall the PyQt 2 --> PyQt 3 upgrade as being
fairly painless (in terms of code changes), though.


There will never be a release of Blackadder that supports PyQt4.


Will there be a licensing deal that allows commercial use of PyQt
cheaper than the standard Qt C++ licenses?
John

Feb 13 '06 #27

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
6177
by: Martin Bless | last post by:
The good news: Along with Python-2.4 comes really good news to Windows users. Yes, you now CAN build extension modules yourself using the SAME C++ compiler and linker Python is built with itself. Everything you need is available at no costs (except download hassle and installation time). Once your system is set up properly its just a matter of running 'python setup.py build'. No longer waiting for someone else to build binaries and a...
0
1663
by: Chive Software | last post by:
Chive Software are pleased to announce a new version of its Apoc PDF Toolkit, part a of its Apoc suite of products. Apoc PDF Toolkit is a high quality software component that developers can add to their applications in order to manipulate existing PDF documents and create new PDF documents. Developed using Microsoft's ..NET environment, this 100% managed code toolkit is compatible with any .NET application such as ASP.NET applications,...
19
477
by: Jonathan Wilson | last post by:
Is it possible to use vcbuild with the free MS compiler toolkit, as in can someone with just the MS toolkit and no access to a copy of Visual Studio itself use vcbuild to compile a Visual Studio .NET 2003 project? Assuming it is possible, I can then work on getting my specific project to compile under vcbuild+platform SDK+Visual C++ compiler toolkit
2
1454
by: noleander | last post by:
I'm trying to get Vis C++ std to compile using /O2 optimizing flag. Many people have suggested downloading the MS C++ 2003 Toolkit ... it supposedly has C++ compiler bins that one could use. I downloaded the 2003 Toolkit ... but the bin files are identical (size, date, contents) as my existing Vis C++ compiler. I have listed the file sizes below. Can someone who has downloaded the 2003 Toolkit see what file sizes and fiel dates ...
11
1984
by: Manish Pansiniya | last post by:
Hello to all, we want to update resource online when administrator changes Localization database. can anybody tell me weather it is possible to run localization toolkit in command line or as batch process to generate satellite assembly ??? Reply ASAP whatever it is.
3
1473
by: Eric | last post by:
Hi, I'm just looking into the samples that are delivered withthe Enterprise Localization Framework/Toolkit. I have set it up and it all works fine. But.. now i have a question. I read a post, from a Microsoft employee i belief, and he stated the following: >3) The AutoPopulate feature doesn't work as well as I
6
1988
by: Rental | last post by:
I'm having the sam problem as described below with the Localization toolkit. Does anyone know if there is a solution to this problem. --->When attempting to generate resource dlls with --->LocalizationManagement.exe, I get an exception: --->Unable to generate loose file resources
6
2068
by: LP | last post by:
Hello, I am looking into ways to consume Web Service (developed in .NET/C#) from legacy COM based applications. Porting COM applications to .NET is not a viable option at this time. I am aware of SOAP Toolkit, but from what I am reading on msdn it's being retired by microsoft in favor of .NET. My question is should I still spend my time with SOAP Toolkit or just develop .NET assembly that consumes Web Service and expose it as COM. I...
24
2871
by: invitro81 | last post by:
Hello I've recently learnt python and I do love it! I congratulate all those geeks who produce this nice language; well, because I could be called a nearby newbee I've decided to improve my abilities by writing my own nice editor with python; so I've to choose among all those GUI toolkit's available there.. But I've no idea which one I should use to start with.. I've read that tkinter seems to be the de facto standart in the pyhon...
0
1964
by: vasudevram | last post by:
Hi group, xtopdf: PDF creation / conversion toolkit: alpha release of v1.3 This is actually a somewhat preliminary announcement, but may be of interest to developers / users who know Python and/or have earlier checked out my xtopdf PDF creation / conversion toolkit:
0
9592
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10231
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10059
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10005
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8887
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6679
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5313
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
3972
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2817
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.