473,289 Members | 2,106 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,289 software developers and data experts.

[Business apps for Windows] Good grid + calendar, etc.?

Hello

Since Python is such a productive language, I'd really like to be
able to use it to write GUI apps for Windows, but business apps
require rich widgets like (DB)grids, calendars, etc.

The ones available in wxWidgets looked a bit too basic compared to
what's available for eg. Delphi or .Net, and don't seem to be under
active development (lots of "1.0", "Last updated 2005", etc.)

For instance, here's wxGrid and DevExpress' grid for Delphi:
http://www.simpol.com/guiimages/wxgrid.jpg
http://community.devexpress.com/blog...otGridForm.png

Is it hopeless, or did I overlook things? Are there other solutions I
should look at (FLTK, etc.)? For those of you writing business apps in
Python for Windows, how do things go as far as GUI widgets are
concerned?

Thank you.
Jun 1 '08 #1
15 2537
On Behalf Of Gilles Ganault
Is it hopeless, or did I overlook things? Are there other
solutions I should look at (FLTK, etc.)? For those of you
writing business apps in Python for Windows, how do things go
as far as GUI widgets are concerned?
To do a bit of shameless plugging, I wrote an overview of Python GUI
platforms for Windows a month or two ago:
http://ginstrom.com/scribbles/2008/0...g-platforms-fo
r-windows/

For your stated needs, I'd advise checking out IronPython or Python.NET
(which allow use of .NET GUI libraries).

Regards,
Ryan Ginstrom

Jun 1 '08 #2
On Sun, 1 Jun 2008 21:27:30 +0900, "Ryan Ginstrom"
<so******@ginstrom.comwrote:
>For your stated needs, I'd advise checking out IronPython or Python.NET
(which allow use of .NET GUI libraries).
Thanks but I forgot to say that I'd rather not use .Net because
deployment/updates are too problematic for our audience.

... that's assuming that a GUI Python can install/update itself as
easily as eg. Delphi, which is where I could be wrong :-/
Jun 1 '08 #3
On Behalf Of Gilles Ganault
Thanks but I forgot to say that I'd rather not use .Net
because deployment/updates are too problematic for our audience.

.. that's assuming that a GUI Python can install/update
itself as easily as eg. Delphi, which is where I could be wrong :-/
wxPython can be made to look pretty nice. Check out Chandler for an example.
http://chandlerproject.org/

Delphi has a truly impressive ecosystem of controls and widgets. If there
were a commercial market for wxPython/wxWidgets widgets, I'm sure we'd get a
bunch of very nice ones as well. There is kind of an analog with the
"bounty" program for developing widgets, but it doesn't appear very active.

If you don't mind being Windows-only, there's another approach that I've
been working on. I use a WTL application to host the web browser, then pass
the browser instance to a COM server written in Python, along with a COM
wrapper of the application window. This gives me the flexibility of HTML +
JavaScript + Python, but eliminates two of the big issues with web apps:
latency and lack of Windows conventions like keyboard shortcuts and Drag &
Drop. I've yet to deploy this approach in an application, but from my
prototypes I'm liking it.

Regards,
Ryan Ginstrom

Jun 1 '08 #4
On Jun 1, 6:59*am, Gilles Ganault <nos...@nospam.comwrote:
Hello

* * * * Since Python is such a productive language, I'd really like to be
able to use it to write GUI apps for Windows, but business apps
require rich widgets like (DB)grids, calendars, etc.

The ones available in wxWidgets looked a bit too basic compared to
what's available for eg. Delphi or .Net, and don't seem to be under
active development (lots of "1.0", "Last updated 2005", etc.)

For instance, here's wxGrid and DevExpress' grid for Delphi:http://www.simpol.com/guiimages/wxgr...XtraPivotGridF...

Is it hopeless, or did I overlook things? Are *there other solutions I
should look at (FLTK, etc.)? For those of you writing business apps in
Python for Windows, how do things go as far as GUI widgets are
concerned?

Thank you.

The wxPython GUI is updated much more often than the Tkinter toolkit.
I recall that there is an advanced calendar widget that's been made by
one of the regulars on the wxPython list, but it's not a part of the
official distribution at this time. You'll have to ask about calendar
widgets and such there though.

The grid can be quite advanced. Did you look at the wxPython demo? Or
Dabo?

Mike
Jun 1 '08 #5
On Sun, 1 Jun 2008 21:59:29 +0900, "Ryan Ginstrom"
<so******@ginstrom.comwrote:
>wxPython can be made to look pretty nice. Check out Chandler for an example.
http://chandlerproject.org/
Yup, they developped some nice-looking widgets, but it doesn't seem
like there's an ecosystem around wxWidgets. I, for one, wouldn't mind
paying for widgets missing from the stock version.
>If you don't mind being Windows-only, there's another approach that I've
been working on.
Thanks for the idea, but I don't have the skills for something like
that :-) Besides, the reason for Python is to make it faster/easier to
write apps, so WTL + browser + COM seems too hard for me.
Jun 1 '08 #6
On Sun, 1 Jun 2008 06:00:03 -0700 (PDT), Mike Driscoll
<ky******@gmail.comwrote:
>I recall that there is an advanced calendar widget that's been made by
one of the regulars on the wxPython list, but it's not a part of the
official distribution at this time. You'll have to ask about calendar
widgets and such there though.
The impression I get, is that those extra widgets (besides the usual
edit, listbox, etc.) aren't really developped/maintained, which is a
problem when comitting for applications that will have to be
developped for a few years.

For instance, is there a calendar in wxPython that has this look and
feel, and is under active development?
http://www.devexpress.com/Products/VCL/ExScheduler/
>The grid can be quite advanced. Did you look at the wxPython demo? Or
Dabo?
Yes, but although the basic wigets are just fine, wxGrid looks a bit
like the basic TStringGrid in Delphi, ie. it's pretty basic so that
several vendors came up with enhanced alternatives. But maybe I
haven't played with it long enough.

http://www.asiplease.net/computing/d...o_popstars.gif

It lacks sorting capability, merging cells with the same content, etc.
Jun 1 '08 #7
Ryan,

<snip>
If you don't mind being Windows-only, there's another approach that I've
been working on. I use a WTL application to host the web browser, then
pass
the browser instance to a COM server written in Python, along with a COM
wrapper of the application window. This gives me the flexibility of HTML
+
JavaScript + Python, but eliminates two of the big issues with web apps:
latency and lack of Windows conventions like keyboard shortcuts and Drag
& Drop.
</snip>

Instead of the COM approach, have you considered using a local, client
based Python server as a container for your business logic and GUI
(DHTML, AJAX)? This would give you a cross platform solution, without
the typical browser/server latency, and via techniques like AJAX,
perhaps more of a desktop look and feel? I haven't done this yet, but
I'm grappling with the same question ("how to create sexy looking
business applications using Python").

Malcolm

Jun 1 '08 #8
From: py****@bdurham.com [mailto:py****@bdurham.com]
Instead of the COM approach, have you considered using a
local, client based Python server as a container for your
business logic and GUI (DHTML, AJAX)? This would give you a
cross platform solution, without the typical browser/server
latency, and via techniques like AJAX, perhaps more of a
desktop look and feel? I haven't done this yet, but I'm
grappling with the same question ("how to create sexy looking
business applications using Python").
I have used a cherrypy server wrapped with py2exe for a "desktop server
app", but the local server in the browser solution has some weaknesses. Drag
and drop is one. Another is native dialog boxes. A third is problems with
firewalls. And although you can do keyboard shortcuts with Ajax, the
mechanism isn't quite the same.

Also, using COM you can manipulate the DOM from Python, removing the need
for AJAX. In that case, your only need for JavaScript would be for prebuilt
library functionality (assuming you like Python better than JavaScript).

Regards,
Ryan Ginstrom

Jun 1 '08 #9
On Sun, 01 Jun 2008 11:24:17 -0400, py****@bdurham.com wrote:
>Instead of the COM approach, have you considered using a local, client
based Python server as a container for your business logic and GUI
(DHTML, AJAX)?
But web-based apps are even worse, since the set of widgets is even
more basic, and web programming is hell. That's why I don't bother,
and write fat apps instead.

It'd be awesome if someone came up with a commercial offer of widgets
that are either missing or not feature-rich enough in wxPython for
real business apps.
Jun 1 '08 #10
On 19:59, domenica 01 giugno 2008 Gilles Ganault wrote:
require rich widgets like (DB)grids, calendars, etc.
Qt seems to go a bit further. Try Eric4 as SDK.
--
Mailsweeper Home : http://it.geocities.com/call_me_not_now/index.html
Jun 1 '08 #11
On Jun 1, 8:28*am, Gilles Ganault <nos...@nospam.comwrote:
On Sun, 1 Jun 2008 06:00:03 -0700 (PDT), Mike Driscoll

<kyoso...@gmail.comwrote:
I recall that there is an advanced calendar widget that's been made by
one of the regulars on the wxPython list, but it's not a part of the
official distribution at this time. You'll have to ask about calendar
widgets and such there though.

The impression I get, is that those extra widgets (besides the usual
edit, listbox, etc.) aren't really developped/maintained, which is a
problem when comitting for applications that will have to be
developped for a few years.

That's debatable. While I doubt the author of the widgets on this site
is constantly working on them, if you have a problem, he is very
responsive and has been known to fix them within hours of the bug
report:

http://xoomer.alice.it/infinity77/main/freeware.html

The Float Canvas widget is also actively maintained by its author.
These are just a few examples.

>
For instance, is there a calendar in wxPython that has this look and
feel, and is under active development?http://www.devexpress.com/Products/VCL/ExScheduler/

I don't know. You should ask on the wxPython user's list:
http://www.wxpython.org/maillist.php

I have personally written a reminder application that has that same
pop-up window though. The grid in the photo that show the months on
the left and letters on the top would be trivial to create. I don't
know how to overlay the grid with other widgets, but I suspect it
would only require doing something in a paint event or embedding some
additional widgets in it.
>
The grid can be quite advanced. Did you look at the wxPython demo? Or
Dabo?

Yes, but although the basic wigets are just fine, wxGrid looks a bit
like the basic TStringGrid in Delphi, ie. it's pretty basic so that
several vendors came up with enhanced alternatives. But maybe I
haven't played with it long enough.

http://www.asiplease.net/computing/d...o_popstars.gif

It lacks sorting capability, merging cells with the same content, etc.
The MegaGrid example demonstrates sorting. You'll have to ask about
the other features on their list. I haven't done that as of yet.

Mike
Jun 1 '08 #12
Ryan Ginstrom wrote:
>On Behalf Of Gilles Ganault
Is it hopeless, or did I overlook things? Are there other
solutions I should look at (FLTK, etc.)? For those of you
writing business apps in Python for Windows, how do things go
as far as GUI widgets are concerned?

To do a bit of shameless plugging, I wrote an overview of Python GUI
platforms for Windows a month or two ago:
http://ginstrom.com/scribbles/2008/0...g-platforms-fo
r-windows/

For your stated needs, I'd advise checking out IronPython or Python.NET
(which allow use of .NET GUI libraries).
AFAIK,
Venster is (at least for windows-mobile-like platforms) replaced by the
very good and stable PocketPyGUI.

cheers,
Stef
Regards,
Ryan Ginstrom

--
http://mail.python.org/mailman/listinfo/python-list
Jun 1 '08 #13
On Jun 1, 8:28*am, Gilles Ganault <nos...@nospam.comwrote:
On Sun, 1 Jun 2008 06:00:03 -0700 (PDT), Mike Driscoll

<kyoso...@gmail.comwrote:
I recall that there is an advanced calendar widget that's been made by
one of the regulars on the wxPython list, but it's not a part of the
official distribution at this time. You'll have to ask about calendar
widgets and such there though.

The impression I get, is that those extra widgets (besides the usual
edit, listbox, etc.) aren't really developped/maintained, which is a
problem when comitting for applications that will have to be
developped for a few years.

For instance, is there a calendar in wxPython that has this look and
feel, and is under active development?http://www.devexpress.com/Products/VCL/ExScheduler/
The grid can be quite advanced. Did you look at the wxPython demo? Or
Dabo?

Yes, but although the basic wigets are just fine, wxGrid looks a bit
like the basic TStringGrid in Delphi, ie. it's pretty basic so that
several vendors came up with enhanced alternatives. But maybe I
haven't played with it long enough.

http://www.asiplease.net/computing/d...o_popstars.gif

It lacks sorting capability, merging cells with the same content, etc.
I found one of the projects I was thinking of. It's called pyspread
and has been getting updated quite a bit of late: http://sourceforge.net/projects/pyspread/

Mike
Jun 1 '08 #14
On Jun 1, 1:43*pm, Gilles Ganault <nos...@nospam.comwrote:
On Sun, 1 Jun 2008 21:27:30 +0900, "Ryan Ginstrom"

<softw...@ginstrom.comwrote:
For your stated needs, I'd advise checking out IronPython or Python.NET
(which allow use of .NET GUI libraries).

Thanks but I forgot to say that I'd rather not use .Net because
deployment/updates are too problematic for our audience.

.. that's assuming that a GUI Python can install/update itself as
easily as eg. Delphi, which is where I could be wrong :-/
Windows Forms (.NET) is one of the best looking Windows GUI toolkits
I've seen. It is also generally very easy to use from IronPython.

We haven't had a problem with deployment / updates with our customers
[1]. Problems you anticipate may be historical. .NET 2 has been pushed
out by Windows update for quite some time and it is *likely* that your
target computers already have it installed.

Further, the latest release of .NET (.NET 3.5 SP1 - still be in Beta)
includes tools for building 'msi' installers which either bundle the
parts of .NET you need - or handle the download and install of .NET on
the client machine (which approach you take is up to you - and
obviously they *don't* depend on having .NET already installed on the
target machine).

You can see some of the details on Scott Guthrie's blog:

http://weblogs.asp.net/scottgu/archi...ck-1-beta.aspx

Scroll down to the parts about ".NET Framework Client Profile Setup
Package":

.NET 3.5 SP1 introduces a new setup package option for developers
building .NET client applications called the ".NET Framework Client
Profile". This provides a new setup installer that enables a smaller,
faster, and simpler installation experience for .NET client
applications on machines that do not already have the .NET Framework
installed.

And also ".NET Framework Setup Bootstrapper for Client Applications":

.NET 3.5 SP1 introduces a new "bootstrapper" component that you can
use with client applications to help automate making sure that the
right version of the .NET Framework is installed. The bootstrapper
component can handle automatically downloading and installing either
the .NET Framework Client Profile or the full .NET Framework Setup
Package from the Internet if your machine doesn't have either of them
installed. The boostrapper can also automatically handle upgrading
machines that have a previous version of the .NET Framework
installed.

All the best,
Michael Foord
http://www.ironpythoninaction.com/
[1] At Resolver Systems: http://www.resolversystems.com/
Jun 1 '08 #15
Gilles Ganault wrote:
>The grid can be quite advanced. Did you look at the wxPython demo? Or
Dabo?

Yes, but although the basic wigets are just fine, wxGrid looks a bit
like the basic TStringGrid in Delphi, ie. it's pretty basic so that
several vendors came up with enhanced alternatives. But maybe I
haven't played with it long enough.
You don't say anything about looking at Dabo. If you are serious about
writing real business apps, then you really do need to look at Dabo.
While it's GUI objects may not be quite up to what you need, the
framework itself is very critical to developing business apps. From
your posts in this thread, it sounds to me like Dabo would greatly help
you build the back-end database and business logic at least.

Despite what you say about web interfaces in business applications, from
what I've seen it's all going that way. PeopleSoft, etc. Everything is
about web-delivered apps, with web services and custom integration these
days. HTML/CSS/Ajax and a bit of Silverlight or Flash for the super
custom widgets is actually competing *very* well with the traditional
Delphi business widgets. True this requires you to maintain "code" in
multiple languages, but frankly that's the cost of doing business.
Business apps are *complicated* to build.

When it does come down to it, you'll probably have to build some of your
own widgets. PyQT makes this quite easy. Canvases, HTML widgets, etc.
If you're going to all the work of developing a complete business app,
then the work that goes into developing custom GUI components isn't that
bad, compared.

Since your target audience appears to be windows users, though, I'd
second the notion of using IronPython and leveraging SWF .NET widgets.
In theory this would run fine under Mono on Unix if you wanted to branch
out.
Jun 2 '08 #16

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

Similar topics

31
by: Carlos Ribeiro | last post by:
Hello all. I'm in the process of writing a business app in Python. (defining business app: data entry, validation, interactive reports, etc). For my purposes, it must be a native app (wxWidgets,...
12
by: Anthony Robinson | last post by:
Is anyone aware of a function (system or user defined) that will calculate business days? For instance: I have a column in as table called DATE. I want to be able to add five business days to that...
10
by: Sarah Smith | last post by:
Hello, I am a bit of a newbie to VB.NET, but not totally new. I took the plunge recently and decided (along with my colleagues), to try to convert/port a VB6 client/server app to .Net. (I'm...
3
by: moondaddy | last post by:
I'm wanting to create a bindable list object made up of a list of business classes. I'm writing this in a vb.net 1.1 winforms app and am using a code example by Rocky Lhotka for reference...
18
by: D Witherspoon | last post by:
I am developing a Windows Forms application in VB.NET that will use .NET remoting to access the data tier classes. A very simple way I have come up with is by creating typed (.xsd) datasets. For...
1
by: Nemisis | last post by:
Hi everyone, We are currently re-developing our software, to asp.net 2.0 and taking a 3 tier architecture. I have been thinking about it, and i think that it belongs in the business tier. ...
7
by: Sam | last post by:
Hi, I use C# in my ASP.NET projects. Here's what I need to do: I want to add x business days to a given date i.e. add 12 business days to today's date. What is the best, fastest and most...
25
by: Penelope Dramas | last post by:
Hello, I'm in a front of very serious .net redesign/rewrite of an old VB6 application. I had been asked to make it .NET 2.0 and would like to ask couple of questions regarding data access as...
14
by: Gilles Ganault | last post by:
Hello Since Python is such a productive language, I'd really like to be able to use it to write GUI apps for Windows, but business apps require rich widgets like (DB)grids, calendars, etc. ...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: Aftab Ahmad | last post by:
Hello Experts! I have written a code in MS Access for a cmd called "WhatsApp Message" to open WhatsApp using that very code but the problem is that it gives a popup message everytime I clicked on...
0
by: Aftab Ahmad | last post by:
So, I have written a code for a cmd called "Send WhatsApp Message" to open and send WhatsApp messaage. The code is given below. Dim IE As Object Set IE =...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...

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.