473,720 Members | 2,745 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

PythonCard thoughts

Hi to all folks here,

i downloaded and "playing" with PythonCard and i just want to share my
thoughts so maybe we can discuss a little about it.
I was used to wxGlade before and i think PythonCard is even better.
I like the separate implementation of GUI and Code that PythonCard
provides, i also like the "binding system" so you can bind functions
to events and have them executed at runtime.
I also like that it does not force you to use sizers and all that
stuff and that you can freely place your components on the form and
set their exact position just with the mouse.

The only "problem" i see with this design is that by that separation
of Gui/Code, you loose the intellisense that (ex. PyDev) some editors/
plugins can provide because in the .py file nothing is indicating
that , for example, the btnDoWork is a Button object.
This force you to remember many properties and switch back and forth
between your code and the wxPython help file. This is not the case for
wxGlade because all boilerplate code is in the same file (for good and
for bad) and PyDev (and others too) can "understand " for which kind of
objects we are talking about and so can display -and thus help us-
with their properties.

Apart from that, everything else is great.

Any opinions/suggestion on all this ?

Mar 19 '07 #1
8 2058
king kikapu wrote:
The only "problem" i see with this design is that by that separation
of Gui/Code, you loose the intellisense that (ex. PyDev) some editors/
plugins can provide because in the .py file nothing is indicating
that , for example, the btnDoWork is a Button object.
This force you to remember many properties and switch back and forth
between your code and the wxPython help file. This is not the case for
wxGlade because all boilerplate code is in the same file (for good and
for bad)
I don't know much about PythonCard or wxGlade, but I use wxPython (which
wxGlade uses, right?) and you now have the option to separate your GUI
and code using an XRC file (xml file that describes layout). So perhaps
this is something you can do with wxGlade, but at the same time it might
still create the problem you describe above. However, it's very to have
your Python files contain just logic.
Mar 19 '07 #2
I don't know much about PythonCard or wxGlade, but I use wxPython (which
wxGlade uses, right?) and you now have the option to separate your GUI
and code using an XRC file (xml file that describes layout). So perhaps
this is something you can do with wxGlade, but at the same time it might
still create the problem you describe above. However, it's very to have
your Python files contain just logic.
Yes, both products (PythonCard and wxGlade) uses wxPython. It's just
that PythonCard is sitting on top of wxPython and it intercepts the
events generated. Then it search for an appropriate declared function
on your code and call it (all this happens at runtime).
It shield us from much of the boilerplate code that gui toolkits
require and in the case that you need to address directly wxPython,
you just can!

I discovered that when you run your designed GUI from PythonCard's
layoutEditor, you have the ability to define a command line option
that is called
"Message Watcher". This, will show you the names of the actual events
that you have to write code for, so you, at least for this, do not
have
to dig the docs for their names. Pretty good!

Mar 19 '07 #3
On Mar 19, 11:44 am, "king kikapu" <aboudou...@pan afonet.grwrote:
I don't know much about PythonCard or wxGlade, but I use wxPython (which
wxGlade uses, right?) and you now have the option to separate your GUI
and code using an XRC file (xml file that describes layout). So perhaps
this is something you can do with wxGlade, but at the same time it might
still create the problem you describe above. However, it's very to have
your Python files contain just logic.

Yes, both products (PythonCard and wxGlade) uses wxPython. It's just
that PythonCard is sitting on top of wxPython and it intercepts the
events generated. Then it search for an appropriate declared function
on your code and call it (all this happens at runtime).
It shield us from much of the boilerplate code that gui toolkits
require and in the case that you need to address directly wxPython,
you just can!

I discovered that when you run your designed GUI from PythonCard's
layoutEditor, you have the ability to define a command line option
that is called
"Message Watcher". This, will show you the names of the actual events
that you have to write code for, so you, at least for this, do not
have
to dig the docs for their names. Pretty good!

Would you please explain more in detail this "Message Watcher" option?
I use PythonCard from time to time, and I find it very easy to use and
practical, even considering the small shortcomings you mentioned
above, but I have no idea of this feature you're talking about..

Regards,
Luis

Mar 19 '07 #4
Would you please explain more in detail this "Message Watcher" option?
I use PythonCard from time to time, and I find it very easy to use and
practical, even considering the small shortcomings you mentioned
above, but I have no idea of this feature you're talking about..

Regards,
Luis
Luis, go to File/Run Options and check the third choice called
"Message Watcher", then run your design.
You will then see that every event that is triggered is displayed to
you and when you actually want to see the event that you interested
in,
you just cause it to happen and then it is displayed on the message
watcher event grid.
You then go to your source file and armed with the known notation
(on_controlName _eventName) you write the code.

I copy from the manual of PythonCard:
"The Message Watcher integrates with the wxPython event model to show
you in real time the events that are being triggered when a PythonCard
application is running. It helps determine where the application code
should go and verify that a PythonCard application is operating as
expected."

Mar 19 '07 #5
king kikapu wrote:
>I don't know much about PythonCard or wxGlade, but I use wxPython (which
wxGlade uses, right?) and you now have the option to separate your GUI
and code using an XRC file (xml file that describes layout). So perhaps
this is something you can do with wxGlade, but at the same time it might
still create the problem you describe above. However, it's very to have
your Python files contain just logic.

Yes, both products (PythonCard and wxGlade) uses wxPython. It's just
that PythonCard is sitting on top of wxPython and it intercepts the
events generated. Then it search for an appropriate declared function
on your code and call it (all this happens at runtime).
It shield us from much of the boilerplate code that gui toolkits
require and in the case that you need to address directly wxPython,
you just can!

I discovered that when you run your designed GUI from PythonCard's
layoutEditor, you have the ability to define a command line option
that is called
"Message Watcher". This, will show you the names of the actual events
that you have to write code for, so you, at least for this, do not
have
to dig the docs for their names. Pretty good!
The only real problem is that PythonCard appears to have run out of
development steam. I don't think there's been much^H^H^H^H any work on
it in the past year or two. This is a shame, as it showed considerable
promise.

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Recent Ramblings http://holdenweb.blogspot.com

Mar 19 '07 #6
On Mar 19, 5:08 am, "king kikapu" <aboudou...@pan afonet.grwrote:
Hi to all folks here,

i downloaded and "playing" with PythonCard and i just want to share my
thoughts so maybe we can discuss a little about it.
I was used to wxGlade before and i think PythonCard is even better.
I like the separate implementation of GUI and Code that PythonCard
provides, i also like the "binding system" so you can bind functions
to events and have them executed at runtime.
I also like that it does not force you to use sizers and all that
stuff and that you can freely place your components on the form and
set their exact position just with the mouse.

The only "problem" i see with this design is that by that separation
of Gui/Code, you loose the intellisense that (ex. PyDev) some editors/
plugins can provide because in the .py file nothing is indicating
that , for example, the btnDoWork is a Button object.
This force you to remember many properties and switch back and forth
between your code and the wxPython help file. This is not the case for
wxGlade because all boilerplate code is in the same file (for good and
for bad) and PyDev (and others too) can "understand " for which kind of
objects we are talking about and so can display -and thus help us-
with their properties.

Apart from that, everything else is great.

Any opinions/suggestion on all this ?

(If I understand your question correctly)

There is no restirction on what you call your objects. For instance,
I do call all of my buttons btnSomeThing, and so forth. If you use
the codeEditor that comes with Pythoncard, you can easily see which
method goes with what control.

(And yes, I wish there are more developers drawn to Pythoncard too -
it's such a nice package).

Mar 19 '07 #7

Ō/« John Henry ›„ŮŠÝŚ:
(If I understand your question correctly)

There is no restirction on what you call your objects. For instance,
I do call all of my buttons btnSomeThing, and so forth.
No, i surely didn't mean this! What i mean is that the creation of
these components happens to NOT reside in the .py file that we are use
to put our logic in, so, the various Editors/Plug-ins cannot
"understand " what type is the object we refer to so they cannot
provide intellisense information.

Let' say for example, that we create a design in PythonCard that
contains a form and just one butto named btnStart. In our .py file we
want to refre to that button in a way such:
self.components .btnStart

At this point, if we had the code that created this button in our
file, PyDev (for example) would show us the properties of btnStart
because it has understood that we are using a wx.Button.

This is not the case of thePython card because this creation is
happened to runtime by...PythonCard !

Anyway, it is not that important from keeping me from using
PythonCard.

Do we know more things about the developing of this product, is it
active/dead or something ??
I plan to use it to create something that will take a long time to
finish and i wouldn't want to find out that the product is a dead-
end...

Mar 19 '07 #8
>
Do we know more things about the developing of this product, is it
active/dead or something ??
I plan to use it to create something that will take a long time to
finish and i wouldn't want to find out that the product is a dead-
end...
There is still "some" development work going on but as with *all* open-
source volunteer based projects, there is *no* gurantee that any of
these software projects not be "dead-ended". How many projects at
SourceForge are still "alive"? No different from any commercial
project, for that matter.

On the other end, being an open-source project, I myself isn't that
concerned. I found PythonCard fit my needs - it has been for several
years, and probably remain so for several years to come. The fact
that there has been no new widgets added to the project for a couple
of years didn't bother me because I have what I need. I have not run
into situations where my needs can not be met by learning from the
very extensive set of examples that matured with the package over the
years.

Do I wish that more developers pick up PythonCard and add new features
to it? Certainly. But then again, I don't have money to pay them.
What can I say? :=)

Mar 19 '07 #9

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

Similar topics

0
1317
by: Ron Stephens | last post by:
Thanks, Tony, we long term newbies need to stick together ;-)) I just updated a few PythonCard versions of three of the modules from askMerlin, and posted them in a link right below the askMerlin100.py command line program. The PythonCard version of election.py in particular is very easy and illustrates what these programs do. You will have to install wxPython and PythonCard in order to use these, so I provide links for that. I must say,...
2
2091
by: Adrian Smith | last post by:
I am using pythoncard 0.7.2 for windows. I am trying to use the same code for a large number of buttons so started out by using def on_mouseDown(self,event): but then I need to display the button that I pressed but you can only have an absolute component name like: self.component.Button1.label = "clicked"
1
1469
by: asdf sdf | last post by:
i need some advice. i'm a back end programmer historically, but have been exploring python for webapps and enjoying it. i need to build some simple Win client-server or standalone apps. the result needs to look professional and attractive, and i need something i can get working fairly quickly with a modest learning curve. i'm looking at wxPython, because that is a pythonic solution. but i'm concerned about the scarcity of gentle...
2
633
by: PipedreamerGrey | last post by:
I'm trying to create a standalone version (.exe) of PythonCard's Custdb sample using Py2Exe version 0.5.0. Everytime I attempt to compile the program, I get an error during compilation. This is the exact code I'm using in the setup file: from distutils.core import setup import py2exe setup( name = "custdb", console = , data_files = ) ]
1
1725
by: Varun Hiremath | last post by:
Hello everybody, I was trying to install pythoncard on my system and I got this error. I am using an unstable version of Debian. Can someone tell me what the error could be. Is it because I am usingUnstable version of Debian I am getting this error or is it because of some other reason. I hope I am mailing this error to the right mailing list if not pls let me know.
1
1974
by: jlocc | last post by:
Hi!! I am working on a school project and I decided to use PythonCard and wxPython for my GUI development. I need a password window that will block unwanted users from the system. I got the pop-up password question to work... def on_openBackground(self, event): result = dialog.textEntryDialog(self,
4
2352
by: Tequila | last post by:
I'm having some trouble starting PythonCard on my PC. I've downloaded and ran python-2.5.msi to install Python on my machine. And PythonCard-0.8.2.win32.exe to install PythonCard. When I try to run the program I get the following error: ====================================== C:\Python25\Lib\site-packages\PythonCard\tools \codeEditor>codeEditor.py Traceback (most recent call last):
8
5987
by: Kevin Walzer | last post by:
I'm curious to know what others think of these two frameworks for building wxPython apps. PythonCard has been around longer, but its development seems to have slowed. The last release, 0.8.2, has been out for quite awhile now. Dabo is newer and seems to have gathered a lot of buzz. Anyone try both? What's your preference and why? Is one more robust than the other?
24
2375
by: John Henry | last post by:
For serveral years, I have been looking for a way to migrate away from desktop GUI/client-server programming onto the browser based network computing model of programming. Unfortunately, up until recently, browser based programs are very limited - due to the limitation of HTML itself. Eventhough PythonCard hasn't keep up with the latest widgets in wxpython, the programs so created still works a lot better - until now. If you look at...
0
8833
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
8727
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9210
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
9126
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
9055
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7998
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
4748
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3186
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
2
2567
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

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.