You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(116) |
Sep
(146) |
Oct
(78) |
Nov
(69) |
Dec
(70) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(188) |
Feb
(142) |
Mar
(143) |
Apr
(131) |
May
(97) |
Jun
(221) |
Jul
(127) |
Aug
(89) |
Sep
(83) |
Oct
(66) |
Nov
(47) |
Dec
(70) |
2003 |
Jan
(77) |
Feb
(91) |
Mar
(103) |
Apr
(98) |
May
(134) |
Jun
(47) |
Jul
(74) |
Aug
(71) |
Sep
(48) |
Oct
(23) |
Nov
(37) |
Dec
(13) |
2004 |
Jan
(24) |
Feb
(15) |
Mar
(52) |
Apr
(119) |
May
(49) |
Jun
(41) |
Jul
(34) |
Aug
(91) |
Sep
(169) |
Oct
(38) |
Nov
(32) |
Dec
(47) |
2005 |
Jan
(61) |
Feb
(47) |
Mar
(101) |
Apr
(130) |
May
(51) |
Jun
(65) |
Jul
(71) |
Aug
(96) |
Sep
(28) |
Oct
(20) |
Nov
(39) |
Dec
(62) |
2006 |
Jan
(13) |
Feb
(19) |
Mar
(18) |
Apr
(34) |
May
(39) |
Jun
(50) |
Jul
(63) |
Aug
(18) |
Sep
(37) |
Oct
(14) |
Nov
(56) |
Dec
(32) |
2007 |
Jan
(30) |
Feb
(13) |
Mar
(25) |
Apr
(3) |
May
(15) |
Jun
(42) |
Jul
(5) |
Aug
(17) |
Sep
(6) |
Oct
(25) |
Nov
(49) |
Dec
(10) |
2008 |
Jan
(12) |
Feb
|
Mar
(17) |
Apr
(18) |
May
(12) |
Jun
(2) |
Jul
(2) |
Aug
(6) |
Sep
(4) |
Oct
(15) |
Nov
(45) |
Dec
(9) |
2009 |
Jan
(1) |
Feb
(3) |
Mar
(18) |
Apr
(8) |
May
(3) |
Jun
|
Jul
(13) |
Aug
(2) |
Sep
(1) |
Oct
(9) |
Nov
(13) |
Dec
|
2010 |
Jan
(2) |
Feb
(3) |
Mar
(9) |
Apr
(10) |
May
|
Jun
(1) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
(4) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(44) |
May
(9) |
Jun
(22) |
Jul
(2) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(3) |
Aug
(8) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Sells, F. <fr...@ad...> - 2005-06-06 12:02:32
|
FYI I ended up editing the property file to change the widget creation order to get the Zorder I needed. -----Original Message----- From: Ed Leafe [mailto:ed...@le...] Sent: Sunday, June 05, 2005 10:33 AM To: Pythoncard-Users Subject: Re: [Pythoncard-users] Z-Order Importance: Low On Jun 4, 2005, at 2:05 PM, QS Computing wrote: > I'd like to put a StaticText on top of another component - an Image in=20 > my > case, but could apply to anything. However, I can't do it: the Send to > Back/Front menu items don't work. =09This is dependent on the OS, and how the various items are drawn. I=20 had this discussion on the wxPython list with Robin because layering=20 that looked correct on my Mac was wrong on Windows, and wrong but in a=20 different way on Gtk.=09 =20 ___/ =20 / =20 __/ =20 / =20 ____/ =20 Ed Leafe =20 http://leafe.com/ =20 http://dabodev.com/ ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. =20 Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=3D20 _______________________________________________ Pythoncard-users mailing list Pyt...@li... https://lists.sourceforge.net/lists/listinfo/pythoncard-users --------------------------------------------------------------------------- The information contained in this message may be privileged and / or confidential and protected from disclosure. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by replying to this message and deleting the material from any computer. --------------------------------------------------------------------------- |
From: Sebastien L. <seb...@gm...> - 2005-06-05 19:21:52
|
Hi, First I would like to thank Alex and all other developers for pythoncard. I use it mainly for home project but it's always a mean to provide a decent/good GUI without wasting too much time. Now my question, I like to build forms with a multicolumnlist in the bottom of the screen (the list of editable data) and many labels and textField in the upper part of the screen (to edit the data). I used a generic helper class to bind data to screen, to validate the data and perform creation, modification and removal of element. My problem is the following : I have a list of 3 element, I first use myList.SetSelection to select the first line (the first line become blue) and update all the textField with element's data. if I modify a TextField and try to select line 2 of mu MultiColumnList, I start a messagDialog to check if the user wants to cancel his modification and switch to element 2 or stay to line 1. My problem is that if the user cancel the second line of the MultiColumnList is still selected but the data in the TextFields still come from the first line. I tried to call=20 SetSelection(2, 0) SetSelection(1, 1) It should work but those methods generate select event causing some nasty effect difficult to catch. Thanks in advance for your ideas and forgive me in advance if my question is trivial .... ;) S=E9bastien |
From: Ed L. <ed...@le...> - 2005-06-05 14:33:26
|
On Jun 4, 2005, at 2:05 PM, QS Computing wrote: > I'd like to put a StaticText on top of another component - an Image in > my > case, but could apply to anything. However, I can't do it: the Send to > Back/Front menu items don't work. This is dependent on the OS, and how the various items are drawn. I had this discussion on the wxPython list with Robin because layering that looked correct on my Mac was wrong on Windows, and wrong but in a different way on Gtk. ___/ / __/ / ____/ Ed Leafe http://leafe.com/ http://dabodev.com/ |
From: Alex T. <al...@tw...> - 2005-06-05 14:16:25
|
No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.323 / Virus Database: 267.6.2 - Release Date: 04/06/2005 |
From: Liam C. <cy...@gm...> - 2005-06-05 13:23:41
|
Work around, open the resource file, change the position of each component'= s=20 entry, ButtonB will come before ButtonA if it's entry is above it.=20 On 6/5/05, QS Computing <pos...@qs...> wrote: >=20 > Hi, >=20 > I'd like to put a StaticText on top of another component - an Image in my > case, but could apply to anything. However, I can't do it: the Send to > Back/Front menu items don't work. >=20 > Am I doing something wrong, or have a missed something, or is this a > bug/misfeature in PythonCard? (Please just don't answer "yes"! :-)) >=20 > Thanks, > - QS Computing. > -- > QS Computing > http://www.qscomputing.plus.com > pos...@qs... >=20 >=20 > ------------------------------------------------------- > This SF.Net <http://SF.Net> email is sponsored by: NEC IT Guy Games. How= =20 > far can you shotput > a projector? How fast can you ride your desk chair down the office luge= =20 > track? > If you want to score the big prize, get to know the little guy. > Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=3D20 > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users >=20 --=20 'There is only one basic human right, and that is to do as you damn well=20 please. And with it comes the only basic human duty, to take the consequences.' |
From: Alex T. <al...@tw...> - 2005-06-04 20:38:30
|
I was looking for an easy way to get a dialog box which presented some info, and then let the user choose one from a set of options, by clicking on one of a set of buttons. I was sure there was a way provided in Pythoncard (or at least in wxPython) to do this - but can't find it. All I want is to get a dialog like Can I go to the movies tonight ? +-------+ +-------+ +-------+ | Yes | | No | | Maybe | +-------+ +-------+ +-------+ without needing to build a new custom dialog each time. So, I've built a couple of functions to do that for me - see code below to see the kind of thing I want. They could be improved and generalized a bit - but there's still this nagging feeling I'm missing some easy way .... anyone ? If no one tells me about an easy way that already exists, I'll improve these a bit and post them somewhere ... testdialogs.py (needs a resource file, which only needs one button, so I didn't include it !!) ========= #!/usr/bin/python """ __version__ = "$Revision: 1.5 $" __date__ = "$Date: 2004/04/30 16:26:12 $" """ from PythonCard import model import multiButtonDialog class MyBackground(model.Background): def on_initialize(self, event): # if you have any initialization # including sizer setup, do it here pass def on_Button1_mouseClick(self, event): result = multiButtonDialog.multiButtonDialog(self, 'some question', ['OK', 'Not OK', "Cancel"], "Test Dialog Title") print "Dialog result:\naccepted: %s\ntext: %s" % (result.accepted, result.text) result = multiButtonDialog.multiButtonDialog(self, 'Dad, can I go to the movies tonight', \ ['Yes', 'No', 'Maybe', 'Ask me later', 'Ask your mum'], "Movies Dialog Title") print "Dialog result:\naccepted: %s\ntext: %s" % (result.accepted, result.text) if __name__ == '__main__': app = model.Application(MyBackground) app.MainLoop() multiButtonDialog.py ============== """ __version__ = "$Revision: 1.3 $" __date__ = "$Date: 2004/08/12 19:14:23 $" """ # dialog to present a block of text and a number of alternative buttons from PythonCard import model import controls rsrc = {'type':'CustomDialog', 'name':'Template', 'title':'Template', 'position':(176, 176), 'size':(367, 230), 'components': [ ## {'type':'TextArea', {'type':'StaticText', 'name':'Text', 'position':(10, 10), 'size':(341, 123), 'actionBindings':{}, }, {'type':'Button', 'id':5101, 'name':'Button', 'position':(269, 145), 'actionBindings':{}, 'label':'template', }, ] # end components } # end CustomDialog class MyDialog(model.CustomDialog): def __init__(self, parent, txt, buttons): model.CustomDialog.__init__(self, parent, rsrc) self.components.Text.text = txt self.components.Button.visible = False self.components.Button.enabled = False if len(buttons) == 0: buttons = ["OK"] bx, by = self.components.Button.size dx = bx + 20 # check if all buttons will fit in window owx, owy = self.size startx, starty = self.components.Button.position if len(buttons)*dx + bx + 40 > owx: wx = len(buttons)*dx + bx + 40 self.size = (wx, owy) startx, starty = (wx-bx-20, owy-by-30) # AGT - why 30 ?? tsx, tsy = self.components.Text.size self.components.Text.size = (wx-20, tsy) localbuttons = buttons localbuttons.reverse() count = 0 for b in localbuttons: n = controls.copyButton(self, "Button", "Button"+str(count), b) self.components[n.name].position = startx-count*dx, starty self.components[n.name].visible = True self.components[n.name].enabled = True count += 1 self.accepted = False self.text = "" def on_mouseClick(self, event): self.text = event.target.userdata if self.text == "Cancel": self.accepted = False else: self.accepted = True self.Close() def multiButtonDialog(parent, txt, buttons, title=""): rsrc["title"] = title dlg = MyDialog(parent, txt, buttons) result = dlg.showModal() result.accepted = dlg.accepted result.text = dlg.text dlg.destroy() return result controls.py ======= #!/usr/bin/python # controls.py - a set of funcitonsd to manipulate contorls at run time from PythonCard import model from wxPython import wx import string, copy from types import * class copyButton: def __init__(self, Background, ButtonName, newname, Text="new button"): Flds = ['position', 'size', 'backgroundColor', 'foregroundColor', 'command', 'font'] aWidget = Background.components[ButtonName] d = {} d['type'] = aWidget.__class__.__name__ for key in Flds: # attributes # I'm not exactly sure why I have to special-case these tuples if key == 'bitmap': # this should get recreated from the file attribute pass elif key in ['position', 'size']: d[key] = getattr(aWidget, key) elif getattr(aWidget, key) is not None: d[key] = getattr(aWidget, key) d['userdata'] = Text d['label'] = Text d['name'] = newname Background.components[newname] = d self.name = newname -- Alex Tweedly http://www.tweedly.net -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.5.2 - Release Date: 03/06/2005 |
From: QS C. <pos...@qs...> - 2005-06-04 18:04:12
|
Hi, I'd like to put a StaticText on top of another component - an Image in my case, but could apply to anything. However, I can't do it: the Send to Back/Front menu items don't work. Am I doing something wrong, or have a missed something, or is this a bug/misfeature in PythonCard? (Please just don't answer "yes"! :-)) Thanks, - QS Computing. -- QS Computing http://www.qscomputing.plus.com pos...@qs... |
From: Alex T. <al...@tw...> - 2005-06-03 21:47:24
|
John Henry wrote: <snip - thanks> >"How about the wxPython demos ?" > >I don't see any demo ap in the wxPython directory. > > > Sorry, I forgot - the wxPython demos and docs are now a separate download .... worth getting to see what else is in there. But not needed, since the Pythoncard samples work OK. >I am beginning to wonder if it has to do with the >keyPress event I am trying. This is what I am doing: > >#********* > def on_tfStudy_keyPress(self, event): > keyCode = event.keyCode > if keyCode==13 : > ...some processing code... > else: > event.skip() >#********* > >Without this event, the program doesn't crash. > > Sounds like that's the culprit; dig in with your usual debugging techniques to see where it is. If you want more help - just holler. Liam's request for the whole traceback is also a good idea if you want to send that - but I think you now have it narrowed down to something in the "...some processing code ..." -- Alex Tweedly http://www.tweedly.net -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.5.2 - Release Date: 03/06/2005 |
From: John H. <kim...@ya...> - 2005-06-03 16:08:26
|
Thanks for the reply. "What's the platform ?" Windows XP fp 2 "Version of wxPython" wxPython2.5-win32-unicode-2.5.4.1-py23.exe "and of Python ?" 2.3.5 "Do the Pythoncard samples work OK ?" Yes. "How about the wxPython demos ?" I don't see any demo ap in the wxPython directory. I am beginning to wonder if it has to do with the keyPress event I am trying. This is what I am doing: #********* def on_tfStudy_keyPress(self, event): keyCode = event.keyCode if keyCode==13 : ...some processing code... else: event.skip() #********* Without this event, the program doesn't crash. Thanks, -- John -----Original Message----- From: pyt...@li... [mailto:pyt...@li...] On Behalf Of Liam Clarke Sent: Friday, June 03, 2005 4:57 AM To: pyt...@li... Subject: Re: [Pythoncard-users] TextField bug? On 6/3/05, Alex Tweedly <al...@tw...> wrote: kim...@ya... wrote: >Hello list, > >I am having touble with textfield objects in >Pythoncard - I am using the latest version downloaded >from www.pythoncard.org (ver 0.81?). > >I have a no-brainer application and when I run it, the >moment I hit a key when inside a textfield, I get an >exception in class point within _core.py, method >__getitem__. The code says: > > def __getitem__(self, index): > return self.Get()[index] > >and it's choking on indexing out-of-range. > >I've checked and the size of self.Get() is 2 and the >value of index is 2 and that's why it crashed. > >As I said, this is a no-brainer ap (just a textfield >and nothing else). What's wrong? > > > What's the platform ? Version of wxPython, and of Python ? Do the Pythoncard samples work OK ? How about the wxPython demos ? -- Alex Tweedly http://www.tweedly.net -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.5.2 - Release Date: 03/06/2005 ------------------------------------------------------- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 _______________________________________________ Pythoncard-users mailing list Pyt...@li... https://lists.sourceforge.net/lists/listinfo/pythoncard-users Ai, please post the whole error message, is _core.py part of the Pythoncard package? I get the feeling it's a part of wxPython. -- 'There is only one basic human right, and that is to do as you damn well please. And with it comes the only basic human duty, to take the consequences.' |
From: Liam C. <cy...@gm...> - 2005-06-03 11:57:28
|
On 6/3/05, Alex Tweedly <al...@tw...> wrote: >=20 > kim...@ya... wrote: >=20 > >Hello list, > > > >I am having touble with textfield objects in > >Pythoncard - I am using the latest version downloaded > >from www.pythoncard.org <http://www.pythoncard.org> (ver 0.81?). > > > >I have a no-brainer application and when I run it, the > >moment I hit a key when inside a textfield, I get an > >exception in class point within _core.py, method > >__getitem__. The code says: > > > > def __getitem__(self, index): > > return self.Get()[index] > > > >and it's choking on indexing out-of-range. > > > >I've checked and the size of self.Get() is 2 and the > >value of index is 2 and that's why it crashed. > > > >As I said, this is a no-brainer ap (just a textfield > >and nothing else). What's wrong? > > > > > > > What's the platform ? Version of wxPython, and of Python ? > Do the Pythoncard samples work OK ? > How about the wxPython demos ? >=20 > -- > Alex Tweedly http://www.tweedly.net >=20 >=20 >=20 > -- > No virus found in this outgoing message. > Checked by AVG Anti-Virus. > Version: 7.0.322 / Virus Database: 267.5.2 - Release Date: 03/06/2005 >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net <http://SF.Net> email is sponsored by Yahoo. > Introducing Yahoo! Search Developer Network - Create apps using Yahoo! > Search APIs Find out how you can build Yahoo! directly into your own > Applications - visit http://developer.yahoo.net/?fr=3Doffad-ysdn-ostg-q22= 005 > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users >=20 Ai, please post the whole error message, is _core.py part of the Pythoncard= =20 package? I get the feeling it's a part of wxPython. --=20 'There is only one basic human right, and that is to do as you damn well=20 please. And with it comes the only basic human duty, to take the consequences.' |
From: Alex T. <al...@tw...> - 2005-06-03 11:17:37
|
kim...@ya... wrote: >Hello list, > >I am having touble with textfield objects in >Pythoncard - I am using the latest version downloaded >from www.pythoncard.org (ver 0.81?). > >I have a no-brainer application and when I run it, the >moment I hit a key when inside a textfield, I get an >exception in class point within _core.py, method >__getitem__. The code says: > > def __getitem__(self, index): > return self.Get()[index] > >and it's choking on indexing out-of-range. > >I've checked and the size of self.Get() is 2 and the >value of index is 2 and that's why it crashed. > >As I said, this is a no-brainer ap (just a textfield >and nothing else). What's wrong? > > > What's the platform ? Version of wxPython, and of Python ? Do the Pythoncard samples work OK ? How about the wxPython demos ? -- Alex Tweedly http://www.tweedly.net -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.5.2 - Release Date: 03/06/2005 |
From: <kim...@ya...> - 2005-06-03 01:55:15
|
Hello list, I am having touble with textfield objects in Pythoncard - I am using the latest version downloaded from www.pythoncard.org (ver 0.81?). I have a no-brainer application and when I run it, the moment I hit a key when inside a textfield, I get an exception in class point within _core.py, method __getitem__. The code says: def __getitem__(self, index): return self.Get()[index] and it's choking on indexing out-of-range. I've checked and the size of self.Get() is 2 and the value of index is 2 and that's why it crashed. As I said, this is a no-brainer ap (just a textfield and nothing else). What's wrong? Thanks, -- John |
From: Alex T. <al...@tw...> - 2005-06-02 23:23:15
|
Kevin Walzer wrote: > That experience, while hardly making me an expert, has made me a little > puzzled about who the intended audience for PythonCard is. Is PythonCard > aimed at people who want a RAD environment for wxPython, or for peole > who perhaps want to dabble a bit with development but not try to learn > wxPython whole hog? > > I'm asking not to be contrarian, but out of genuine curiosity. It's a good question - so it deserves two answers. I sent the "serious" one earlier ..... Now the 'smartass' answer : the target audience for PythonCard is *ME* OK, I'm optimistic enough to assume that if it helps me, it'll also help other people :-) And naive enough to assume that if Kevin thinks the target audience is *him* - then what I want is close enough. -- Alex Tweedly http://www.tweedly.net -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.4.1 - Release Date: 02/06/2005 |
From: Bo G. <bo...@sy...> - 2005-06-02 19:00:03
|
If you want to see the difference for yourself, try using Boa for a while to start building a wxPython app, then switch and use Pythoncard to build the same app. That's what I did, and I was so relieved I nearly relieved myself, if you get my drift. Coding in Pythoncard has been a big time-saver for me. I'm currently co-building a fairly complex application with a database backend, and I think if we had to use wxPython for the whole thing we would have chosen a different route. Bo Kevin Walzer wrote: > I'm very interested in wxPython as a development language, because it's > free/open-source and also because of the number of different tools it > supports--including PythonCard. I've been lurking on the PythonCard list > for some time. I'm also working on learning wxPython itself, mainly by > following the various tutorials at the wxPython wiki and also tinkering > with the code samples that come with the wxPython distribution. > > That experience, while hardly making me an expert, has made me a little > puzzled about who the intended audience for PythonCard is. Is PythonCard > aimed at people who want a RAD environment for wxPython, or for peole > who perhaps want to dabble a bit with development but not try to learn > wxPython whole hog? > > I'm asking not to be contrarian, but out of genuine curiosity. While > wxPython itself is big and my progress with it has been fairly slow, I > don't feel that wxPython is terribly difficult in itself. As well, > PythonCard only supports a subset of wxPython widgets and does not > provide a true drag-and-drop development environment. So, does > PythonCard provide the expected gain in ease-of-use and development > speed that comes with giving up the power (and complexity) of the full > wxPython environment? Disclosure about my own background: I've done "get-my-hands-dirty" > development work, coding a few non-trivial applications in Tcl/Tk > completely by hand, and I've also done some "quick-and-dirty" > drag-and-drop development with Apple's Xcode tools (AppleScript > Studio--slick and free, but not open-source). So, I've seen both ends of > the spectrum, and am trying to understand where PythonCard fits in. > > I appreciate the perspective that others can provide, especially about > the good points of PythonCard that I am perhaps overlooking. > > > -- > Cheers, > > Kevin Walzer, PhD > WordTech Software--Open Source Applications and Packages for OS X > http://www.wordtech-software.com > http://www.kevin-walzer.com > mailto:sw...@wo... ------------------------------------------------------- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 _______________________________________________ Pythoncard-users mailing list Pyt...@li... https://lists.sourceforge.net/lists/listinfo/pythoncard-users |
From: Alex T. <al...@tw...> - 2005-06-02 18:34:25
|
Kevin Walzer wrote: > I'm very interested in wxPython as a development language, because it's > free/open-source and also because of the number of different tools it > supports--including PythonCard. I've been lurking on the PythonCard list > for some time. I'm also working on learning wxPython itself, mainly by > following the various tutorials at the wxPython wiki and also tinkering > with the code samples that come with the wxPython distribution. > > That experience, while hardly making me an expert, has made me a little > puzzled about who the intended audience for PythonCard is. Is PythonCard > aimed at people who want a RAD environment for wxPython, yes > or for peole who perhaps want to dabble a bit with development but not > try to learn > wxPython whole hog? yes > I'm asking not to be contrarian, but out of genuine curiosity. While > wxPython itself is big and my progress with it has been fairly slow, I > don't feel that wxPython is terribly difficult in itself. As well, > PythonCard only supports a subset of wxPython widgets and does not > provide a true drag-and-drop development environment. what's your minimum definition to be a "true drag-and-drop" environment ? If you mean a full "integrated live environment" (e.g Hypercard, Metacard, RunRev, etc.) then it's not, and never will be, that. But then - neither will any other Python based approach, and very few others either. If you "simply" want an environment where you can layout and characterize the graphic elements, with reasonable integration with the associated code, then I think PythonCard is fairly close. If you haven't tried it, try the experimental resourceEditor (see earlier on the list, or it will be in CVS soon - it adds a number of features that I think are useful. Only supporting a subset of wxPython widgets is, I believe, a deliberate and important strategy. There are so many of them that it's easy to be overwhelmed by the choice, or to spend too much time learning them all (and then forgetting about them before you ever need them). I believe that PythonCard *should* support the 30% of wxPython widgets needed to handle 90% of straightforward applications. > So, does PythonCard provide the expected gain in ease-of-use and > development > speed that comes with giving up the power (and complexity) of the full > wxPython environment? Yes. Of course, you don't give up the power of wxPython. It is possible, and in most cases practical, to use directly those wxPython widgets that you need and which PCard doesn't support. Of course, it means that you need to go through some of the learning curve - but you don't need all of it, and often you can avoid the tedium (my opinion) of programming in wxPython for a large percentage of your application. > Disclosure about my own background: I've done "get-my-hands-dirty" > development work, coding a few non-trivial applications in Tcl/Tk > completely by hand, and I've also done some "quick-and-dirty" > drag-and-drop development with Apple's Xcode tools (AppleScript > Studio--slick and free, but not open-source). So, I've seen both ends of > the spectrum, and am trying to understand where PythonCard fits in. > > I appreciate the perspective that others can provide, especially about > the good points of PythonCard that I am perhaps overlooking. I've written a number of small applications in Pythoncard - mostly for personal use, some used by myself and a few other people. In every case but one, I was able to do what I needed in Pythoncard, and they covered a fair range of things - file manipulation / synching - games - email analysis - web scraping and presentation - photo management - FIM that's a Family Information Manager - like a PIM, but the focus is on shared data, so it does peer-to-peer cross-network synching for a shared calendar and address book. - toys (e.g. the "flock" Pythoncard sample I think of as a toy - not quite a game, but no practical use :-) In some cases, the finished application might have been nicer or more powerful without some constraint from Pythoncard - but then, they could all be improved in many different ways. (I should say that I have used sizers in a number of them, which strictly speaking is "beyond Pythoncard". But even then I find it so much easier to think about and develop in a visual layout environment, and then when I'm 90% done, add the sizer code. In some cases, I've done that 90% and then decided it was easier and better to write geometry management code specific for the project than to force-fit it into sizers). So, for me, the gain in ease-of-use and development speed has been substantial and significant, and I don't think I'm giving up much, if anything, by designing projects with PythonCard in mind - knowing I can "reach through" to wxPython direct for the small percentage of the code that needs to do so, in a small percentage of projects. If you're developing substantial commercial apps, your mileage will vary - and you're probably outside the target audience of Pythoncard. -- Alex Tweedly http://www.tweedly.net -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.4.1 - Release Date: 02/06/2005 |
From: Kevin W. <sw...@wo...> - 2005-06-02 15:02:36
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I'm very interested in wxPython as a development language, because it's free/open-source and also because of the number of different tools it supports--including PythonCard. I've been lurking on the PythonCard list for some time. I'm also working on learning wxPython itself, mainly by following the various tutorials at the wxPython wiki and also tinkering with the code samples that come with the wxPython distribution. That experience, while hardly making me an expert, has made me a little puzzled about who the intended audience for PythonCard is. Is PythonCard aimed at people who want a RAD environment for wxPython, or for peole who perhaps want to dabble a bit with development but not try to learn wxPython whole hog? I'm asking not to be contrarian, but out of genuine curiosity. While wxPython itself is big and my progress with it has been fairly slow, I don't feel that wxPython is terribly difficult in itself. As well, PythonCard only supports a subset of wxPython widgets and does not provide a true drag-and-drop development environment. So, does PythonCard provide the expected gain in ease-of-use and development speed that comes with giving up the power (and complexity) of the full wxPython environment? Disclosure about my own background: I've done "get-my-hands-dirty" development work, coding a few non-trivial applications in Tcl/Tk completely by hand, and I've also done some "quick-and-dirty" drag-and-drop development with Apple's Xcode tools (AppleScript Studio--slick and free, but not open-source). So, I've seen both ends of the spectrum, and am trying to understand where PythonCard fits in. I appreciate the perspective that others can provide, especially about the good points of PythonCard that I am perhaps overlooking. - -- Cheers, Kevin Walzer, PhD WordTech Software--Open Source Applications and Packages for OS X http://www.wordtech-software.com http://www.kevin-walzer.com mailto:sw...@wo... -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (Darwin) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCnx+HJmdQs+6YVcoRAp3MAKCCErlV3bq6kmgNDnYDK7rZRRRIfwCeKuhU 44dQeJSJebLrdfvLwxSnoiQ= =bO5m -----END PGP SIGNATURE----- |
From: Alex T. <al...@tw...> - 2005-06-02 14:31:52
|
No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.4.1 - Release Date: 02/06/2005 |
From: Alex T. <al...@tw...> - 2005-06-02 14:26:39
|
No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.4.1 - Release Date: 02/06/2005 |
From: Bo G. <bo...@sy...> - 2005-06-01 15:47:34
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> </head> <body bgcolor="#ffffff" text="#000000"> <br> This is true. You do have to code straight wxPython, which means using wx events and handlers. For the grid, I fired up BoaConstructor, generated the code for the grid I wanted, and copied the relevant fragments into my pythoncard app. Then I modified a custom gridCellEditor from the Python Cookbook, and added that too. Presto, a grid.<br> It's not actually a secret that you can mix wx widgets with pythoncard components, I've seen it explicitly mentioned on this list before (by KA I think).<br> <br> <br> <a class="moz-txt-link-abbreviated" href="mailto:bra...@om...">bra...@om...</a> wrote: <blockquote cite="mid...@om..." type="cite"><br> <font face="sans-serif" size="2">I'm glad to hear it's possible to add non-PythonCard wx widgets into PythonCard.</font> <br> <font face="sans-serif" size="2">I take it that none of the normal PythonCard events will be generated by these</font> <br> <font face="sans-serif" size="2">kinds of add-ins? As in, on_mouseClick or on_closeField or on_select are all</font> <br> <font face="sans-serif" size="2">events that only come from PythonCard widgets, right?<br> </font> <br> <br> <font size="2"><tt>Bo Green wrote on 06/01/2005 07:02:42 AM:<br> <br> > <br> > Thanks Brad. First, an aside, the grid is working fine for all but <br> > the problem of creating and loading inside the same event handler. <br> > Your comments were helpful, because they made me rethink the methods<br> > and modules. I remembered a list member talking about a childWindow <br> > problem with event handling (in their case it was trying to Raise() <br> > the window after creating it in the same event handler). Same <br> > problem, same solution. The solution was to move the Raise() into <br> > the on_initialize method. I borrowed that logic, and moved my <br> > set_grid_data() method call into the on_initialize method. I also <br> > moved the get_grid_data() and set_grid_data() methods into <br> > FileSpecsWin as a better style choice. Works like a charm. <br> > </tt></font> </blockquote> <br> </body> </html> |
From: Brad A. <bra...@ma...> - 2005-06-01 13:57:07
|
>this use the wxeditcomponent, >but must edit a param in the wxwidget Can you show example code for this? Thanks! |
From: <bra...@om...> - 2005-06-01 13:49:15
|
I'm glad to hear it's possible to add non-PythonCard wx widgets into PythonCard. I take it that none of the normal PythonCard events will be generated by these kinds of add-ins? As in, on_mouseClick or on_closeField or on_select are all events that only come from PythonCard widgets, right? Bo Green wrote on 06/01/2005 07:02:42 AM: > > Thanks Brad. First, an aside, the grid is working fine for all but > the problem of creating and loading inside the same event handler. > Your comments were helpful, because they made me rethink the methods > and modules. I remembered a list member talking about a childWindow > problem with event handling (in their case it was trying to Raise() > the window after creating it in the same event handler). Same > problem, same solution. The solution was to move the Raise() into > the on_initialize method. I borrowed that logic, and moved my > set_grid_data() method call into the on_initialize method. I also > moved the get_grid_data() and set_grid_data() methods into > FileSpecsWin as a better style choice. Works like a charm. > |
From: Bo G. <bo...@sy...> - 2005-06-01 12:02:47
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> <title></title> </head> <body bgcolor="#ffffff" text="#000000"> <br> Thanks Brad. First, an aside, the grid is working fine for all but the problem of creating and loading inside the same event handler. Your comments were helpful, because they made me rethink the methods and modules. I remembered a list member talking about a childWindow problem with event handling (in their case it was trying to Raise() the window after creating it in the same event handler). Same problem, same solution. The solution was to move the Raise() into the on_initialize method. I borrowed that logic, and moved my set_grid_data() method call into the on_initialize method. I also moved the get_grid_data() and set_grid_data() methods into FileSpecsWin as a better style choice. Works like a charm. <br> <br> class TestNotebook(model.Background):<br> <br> def open_projfile(self):<br> try:<br> projectFileRef = shelve.open(self.projectFile)<br> except IOError:<br> result = dialog.alertDialog(self,'File %s could not be opened - try again' % (self.projectFile), 'Error')<br> else:<br> if projectFileRef.has_key('File1Window'):<br> self.file1Win = model.childWindow(self.components.notebook, FileSpecsWin)<br> self.components.notebook.AddPage(self.file1Win, 'File 1 Specs', True)<br> (self.file1Win.components.textFilePath.text,<br> self.file1Win.components.buttonImport.enabled,<br> self.file1Win.components.buttonLoad.enabled) = projectFileRef['File1Window']<br> if projectFileRef.has_key('File1GridData'):<br> self.file1Win.grid_data = projectFileRef['File1GridData']<br> <br> <br> class FileSpecsWin(model.PageBackground):<br> <br> def on_initialize(self, event):<br> self.fileGrid = wx.grid.Grid(name='fileGrid', parent=self.panel,<br> pos=wx.Point(21, 64), size=wx.Size(400, 390), style=0)<br> self.fileGrid.SetRowLabelSize(40)<br> self.fileGrid.SetColLabelSize(17)<br> ...<br> self.fileGrid.ForceRefresh()<br> if hasattr(self,"grid_data") and self.grid_data:<br> self.set_grid_data()<br> self.grid_data = []<br> <br> <br> Thanks for taking the time to look it over.<br> Bo<br> <br> <br> <a class="moz-txt-link-abbreviated" href="mailto:bra...@om...">bra...@om...</a> wrote: <blockquote cite="mid...@om..." type="cite"><br> <font size="2"><tt>Bo Green wrote on 05/30/2005 09:32:27 AM:</tt></font> <br> <br> <font face="sans-serif" size="2">></font><font size="2"><tt> I could use some sage advice at this point.</tt></font> <br> <br> <font face="sans-serif" size="2">I'm afraid the sages may all be on sabbatical right now, but hopefully one will show up soon.</font> <br> <font face="sans-serif" size="2">I wish I was knowledgeable enough to help, but I didn't even realize you could add</font> <br> <font face="sans-serif" size="2">non-PythonCard components to a Background or a PageBackground, at least not without </font> <br> <font face="sans-serif" size="2">mucking about with the event model. Adding a wx.grid component is a pretty nifty</font> <br> <font face="sans-serif" size="2">thing to do; I had been wishing that PythonCard had a grid component.</font> <br> <br> <font face="sans-serif" size="2">Anway, despite my lack of sagely knowledge, here are a few ideas:</font> <br> <br> <font face="sans-serif" size="2">Has this grid component ever worked for you in a normal Background, outside</font> <br> <font face="sans-serif" size="2">the context of a notebook page?</font> <br> <br> <font face="sans-serif" size="2">I noticed that you're creating the grid as self.fileGrid rather than self.components.fileGrid.</font> <br> <font face="sans-serif" size="2">Maybe it's worth a try to put it in self.components.</font> <br> <br> <font face="sans-serif" size="2">You could also sprinkle in a few print statements to see if the on_initialize is happening</font> <br> <font face="sans-serif" size="2">when you think it's happening.<br> </font> <br> <br> <font size="2"><tt>Bo Green wrote on 05/30/2005 09:32:27 AM:<br> <br> > <br> > I am working with TestNotebook, and am trying to create pages and <br> > populate the pages in the pages using a persistent dictionary. One of <br> > the properties in one of the pages is a wxGrid. The grid creation <br> > happens in on_initialize for the page:<br> > <br> > class FileSpecsWin(model.PageBackground):<br> > <br> > def on_initialize(self, event):<br> > self.fileGrid = wx.grid.Grid(name='fileGrid', parent=self.panel,<br> > pos=wx.Point(21, 64), size=wx.Size(400, 390), style=0)<br> > self.fileGrid.SetRowLabelSize(40)<br> > self.fileGrid.SetColLabelSize(17)<br> > ...etc<br> > <br> > the method which adds the page and populates the grid looks like this:<br> > <br> > class TestNotebook(model.Background):<br> > <br> > ...other methods...<br> > <br> > def open_projfile(self):<br> > try:<br> > projectFileRef = shelve.open(self.projectFile)<br> > except IOError:<br> > result = dialog.alertDialog(self,'File %s could not be <br> > opened - try again' % (self.projectFile), 'Error')<br> > else:<br> > if projectFileRef.has_key('File1Window'):<br> > self.file1Win = <br> > model.childWindow(self.components.notebook, FileSpecsWin)<br> > self.components.notebook.AddPage(self.file1Win, 'File 1 <br> > Specs', True)<br> > (self.file1Win.components.textFilePath.text,<br> > self.file1Win.components.buttonImport.enabled,<br> > self.file1Win.components.buttonLoad.enabled) = <br> > projectFileRef['File1Window']<br> > if projectFileRef.has_key('File1GridData'):<br> > grid_data = projectFileRef['File1GridData']<br> > self.set_grid_data(grid_data, self.file1Win.fileGrid)<br> > <br> > But, the grid doesn't exist when this method attempts to populate it. I <br> > get an error like this:<br> > <br> > AttributeError: 'FileSpecsWin' object has no attribute 'fileGrid'<br> > <br> > I thought this might have to do with stacking method calls, so I tried <br> > wx.CallAfter(self.set_grid_data, grid_data, self.file1Win.fileGrid), but <br> > that didn't work. I could use some sage advice at this point.<br> > Thanks.<br> > Bo Green<br> > <br> > <br> > <br> > -------------------------------------------------------<br> > This SF.Net email is sponsored by Yahoo.<br> > Introducing Yahoo! Search Developer Network - Create apps using Yahoo!<br> > Search APIs Find out how you can build Yahoo! directly into your own<br> > Applications - visit <a class="moz-txt-link-freetext" href="http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005">http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005</a><br> > _______________________________________________<br> > Pythoncard-users mailing list<br> > <a class="moz-txt-link-abbreviated" href="mailto:Pyt...@li...">Pyt...@li...</a><br> > <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/pythoncard-users">https://lists.sourceforge.net/lists/listinfo/pythoncard-users</a><br> </tt></font> </blockquote> <br> </body> </html> |
From: chong w. <wj...@ya...> - 2005-06-01 03:08:20
|
this use the wxeditcomponent, but must edit a param in the wxwidget --------------------------------- Discover Yahoo! Stay in touch with email, IM, photo sharing & more. Check it out! |
From: <bra...@om...> - 2005-05-31 22:51:54
|
Bo Green wrote on 05/30/2005 09:32:27 AM: > I could use some sage advice at this point. I'm afraid the sages may all be on sabbatical right now, but hopefully one will show up soon. I wish I was knowledgeable enough to help, but I didn't even realize you could add non-PythonCard components to a Background or a PageBackground, at least not without mucking about with the event model. Adding a wx.grid component is a pretty nifty thing to do; I had been wishing that PythonCard had a grid component. Anway, despite my lack of sagely knowledge, here are a few ideas: Has this grid component ever worked for you in a normal Background, outside the context of a notebook page? I noticed that you're creating the grid as self.fileGrid rather than self.components.fileGrid. Maybe it's worth a try to put it in self.components. You could also sprinkle in a few print statements to see if the on_initialize is happening when you think it's happening. Bo Green wrote on 05/30/2005 09:32:27 AM: > > I am working with TestNotebook, and am trying to create pages and > populate the pages in the pages using a persistent dictionary. One of > the properties in one of the pages is a wxGrid. The grid creation > happens in on_initialize for the page: > > class FileSpecsWin(model.PageBackground): > > def on_initialize(self, event): > self.fileGrid = wx.grid.Grid(name='fileGrid', parent=self.panel, > pos=wx.Point(21, 64), size=wx.Size(400, 390), style=0) > self.fileGrid.SetRowLabelSize(40) > self.fileGrid.SetColLabelSize(17) > ...etc > > the method which adds the page and populates the grid looks like this: > > class TestNotebook(model.Background): > > ...other methods... > > def open_projfile(self): > try: > projectFileRef = shelve.open(self.projectFile) > except IOError: > result = dialog.alertDialog(self,'File %s could not be > opened - try again' % (self.projectFile), 'Error') > else: > if projectFileRef.has_key('File1Window'): > self.file1Win = > model.childWindow(self.components.notebook, FileSpecsWin) > self.components.notebook.AddPage(self.file1Win, 'File 1 > Specs', True) > (self.file1Win.components.textFilePath.text, > self.file1Win.components.buttonImport.enabled, > self.file1Win.components.buttonLoad.enabled) = > projectFileRef['File1Window'] > if projectFileRef.has_key('File1GridData'): > grid_data = projectFileRef['File1GridData'] > self.set_grid_data(grid_data, self.file1Win.fileGrid) > > But, the grid doesn't exist when this method attempts to populate it. I > get an error like this: > > AttributeError: 'FileSpecsWin' object has no attribute 'fileGrid' > > I thought this might have to do with stacking method calls, so I tried > wx.CallAfter(self.set_grid_data, grid_data, self.file1Win.fileGrid), but > that didn't work. I could use some sage advice at this point. > Thanks. > Bo Green > > > > ------------------------------------------------------- > This SF.Net email is sponsored by Yahoo. > Introducing Yahoo! Search Developer Network - Create apps using Yahoo! > Search APIs Find out how you can build Yahoo! directly into your own > Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users |
From: Bo G. <bo...@sy...> - 2005-05-30 14:32:14
|
I am working with TestNotebook, and am trying to create pages and populate the pages in the pages using a persistent dictionary. One of the properties in one of the pages is a wxGrid. The grid creation happens in on_initialize for the page: class FileSpecsWin(model.PageBackground): def on_initialize(self, event): self.fileGrid = wx.grid.Grid(name='fileGrid', parent=self.panel, pos=wx.Point(21, 64), size=wx.Size(400, 390), style=0) self.fileGrid.SetRowLabelSize(40) self.fileGrid.SetColLabelSize(17) ...etc the method which adds the page and populates the grid looks like this: class TestNotebook(model.Background): ...other methods... def open_projfile(self): try: projectFileRef = shelve.open(self.projectFile) except IOError: result = dialog.alertDialog(self,'File %s could not be opened - try again' % (self.projectFile), 'Error') else: if projectFileRef.has_key('File1Window'): self.file1Win = model.childWindow(self.components.notebook, FileSpecsWin) self.components.notebook.AddPage(self.file1Win, 'File 1 Specs', True) (self.file1Win.components.textFilePath.text, self.file1Win.components.buttonImport.enabled, self.file1Win.components.buttonLoad.enabled) = projectFileRef['File1Window'] if projectFileRef.has_key('File1GridData'): grid_data = projectFileRef['File1GridData'] self.set_grid_data(grid_data, self.file1Win.fileGrid) But, the grid doesn't exist when this method attempts to populate it. I get an error like this: AttributeError: 'FileSpecsWin' object has no attribute 'fileGrid' I thought this might have to do with stacking method calls, so I tried wx.CallAfter(self.set_grid_data, grid_data, self.file1Win.fileGrid), but that didn't work. I could use some sage advice at this point. Thanks. Bo Green |