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: Kevin A. <al...@se...> - 2004-09-25 16:11:43
|
I just changed the minimum requirement for running PythonCard to wxPython 2.5.2.8 in order to get rid of some workaround code in dialog.py that I did for wxPython 2.5.2.7. If you're working from cvs, you'll need to update your version of wxPython. I added a passwordTextEntryDialog and multilineTextEntryDialog to dialog.py. To complement the arrow key movement support I added to the resourceEditor, I also added an option to display grid lines based on the currently specified grid size. ka |
From: Alex T. <al...@tw...> - 2004-09-25 15:32:20
|
At 09:19 25/09/2004 -0500, Ted Campbell wrote: >I've created a child window as per the instructions in the PythonCard >documentation. But when I got it working, I was surprised to find that >this was a free-standing window -- I was wanting a "child window" that >operates only within the frame of an existing window. I seem to recall the >expression "multiple document interface" (MDI) from some programming >context. Is this possible within the pythonCard framework, i.e., to create >a child window that is constrained entirely within the bounds of a larger >application window? Thanks. short answer: It's not supported directly in PythonCard, but it is in wxPython, so you should be able to use the wxPython features directly, but still do some (much) of your program in PythonCard. The wxPython Demo program includes MDI samples (under "Base frames and Dialogs"). Note the comment there which says >Although Microsoft has deprecated the MDI model, wxWindows still supports >it. Here are a couple samples of how to use it - one straightforward, the >other showing how the MDI interface can be integrated into a SashWindow >interface. long answer: yes, MDI is short for Multiple Document Interface, also known as Microsoft's 1990's solution to complex UIs. (Not that it was invented by MS - merely adopted and pushed by them). For a while, MS were preaching this as *the* way to do complex user interfaces, but they've backed away from it quite a lot. See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch10a.asp and the sub-link to Multiple Window Interface for details (go to the bottom of the sub-page for reasons for/against choosing MDI). Most modern programs have turned away from MDI in favour of either SDI (Single Document interface), or notebook-style ("workbooks" on the MS page above), or multiple panes using splitters/sashes (and/or docking sub-windows) to provide user control. PythonCard (latest version in CVS) supports notebooks - see Kevin's posting and samples on this list earlier this month (around 13th/14th), and he indicated that splitter support may happen in the near future. So - personal answer - avoid it if you can, try one of the other design approaches. -- Alex. |
From: Ted C. <te...@Te...> - 2004-09-25 14:17:35
|
I've created a child window as per the instructions in the PythonCard documentation. But when I got it working, I was surprised to find that this was a free-standing window -- I was wanting a "child window" that operates only within the frame of an existing window. I seem to recall the expression "multiple document interface" (MDI) from some programming context. Is this possible within the pythonCard framework, i.e., to create a child window that is constrained entirely within the bounds of a larger application window? Thanks. /ted Ted Campbell |
From: normanwinn <nor...@on...> - 2004-09-25 09:14:55
|
> > >Are you using cvs from the command-line or something like tortoisecvs? > Am using the command line. In fact, I'm following your instructions from: http://aspn.activestate.com/ASPN/Mail/Message/PythonCard/1048235 hence the reason I went for 'PythonCardPrototype'. I'll try again and see what happens, Norman I dislike homilies at the end of posts but this one seems apposite (saw it on the wall of the woodwork class in letters one foot high when I was a teacher): 'People who don't make mistakes don't make anything'. |
From: Kevin A. <al...@se...> - 2004-09-25 00:30:38
|
Just an FYI. There is even more whitespace than I suspected. http://developer.apple.com/documentation/UserExperience/Conceptual/ OSXHIGuidelines/ http://developer.apple.com/documentation/UserExperience/Conceptual/ OSXHIGuidelines/XHIGLayout/chapter_11_section_2.html ka |
From: Kevin A. <al...@se...> - 2004-09-24 23:46:21
|
I have been getting sort of annoyed at the extra vertical whitespace that you have to stick into a static layout for GTK and the Mac in order for the layout to not have the components chopped off vertically on Windows. This is somewhere around 13-20 pixels of extra whitespace at the bottom. OTOH, on the Mac, you typically need extra whitespace around components so that the selection rectangle that is used on the currently selected component won't run into the edge of the frame. I haven't dug into the Apple HIG yet, but I think that is probably at least 7-10 pixels given how much whitespace most Mac apps seem to use for layout. Anyway, I wrote up a prototype fitToComponents method that calculates the minimum size needed for the panel and then adds some padding. I stuck it in the Background class of model.py to see whether we might auto-compensate for the whitespace needs of each platform when a layout is loaded without having to resort to using a sizer for something so basic. Here's the method minus the comments and print statements. def fitToComponents(self, widthPadding=None, heightPadding=5): width = 0 height = 0 for c in self.components.itervalues(): x, y = c.position w, h = c.size width = max(x + w, width) height = max(y + h, height) newWidth, newHeight = self.panel.size if widthPadding is not None: newWidth = width + widthPadding if heightPadding is not None: newHeight = height + heightPadding self.panel.SetSize((newWidth, newHeight)) self.SetClientSize((newWidth, newHeight)) I tested on Windows and the Mac using the dialogs sample in cvs by adding the following method: class Dialogs(model.Background): def on_initialize(self, event): self.fitToComponents(None, 5) Then I ran the sample in various forms, adding a statusBar, removing the menubar and menus, etc. and it appears to behave as expected in all cases and looks better than the extra whitespace the sample would have by default on GTK and Mac. It works for changing the width of the window as well, but I'm not sure about how I feel on changing that automatically. One obvious issue is that human interface guidelines for each platform probably specify the amount of whitespace that should be used, the Mac is likely more than Windows, etc. so it might make more sense to have a default arg that will end up using what is appropriate for each platform, while still allowing the user code or resource to override that value. My current thinking is that I would add an option to the Background resource format that takes a tuple and PythonCard would "fix" the layout when it adds the components. Since you might not want it to do this fix, it will be settable via the Background Info dialog and people generating layouts on the fly will always be able to call it manually as well. There might be a bit of overlap with some of the experiments that Alex has been doing on auto-generating sizer wrappers on a layout. If you have any comments or suggestions related to this idea, I would like to hear them. ka |
From: Kevin A. <al...@se...> - 2004-09-24 20:55:31
|
On Sep 24, 2004, at 1:05 PM, normanwinn wrote: > Hi, > > Kept trying cvs and, finally, it worked. All the files downloaded. > Then I did the update. Commands (I presume in python) flashed by and I > continued what I was doing and let it get on with it. Then, suddenly, > the laptop's speaker started blaring out at full volume - even though > the volume control (Windows XP) was near the minimum. Must have been > the control Eventually I hit the 'Mute' button and the very loud noise > stopped. The command window where the update was running was filled > with control characters (which no doubt turned the speaker on) and > general ascii garbage. I let this continue a while thinking it might > just be normal. Eventually I killed the process and tried again. Same > thing. > > I now have what appears to be a complete set PythonCardPrototype files > but they are all kind of shaded out. > > Any ideas? > > Norman Winn > Well I'm not sure what that was about. However, you should have checked out the PythonCard package instead of PythonCardPrototype, sorry if that wasn't clear. cvs -z3 -d:pserver:ano...@cv...:/cvsroot/pythoncard co modulename PythonCard I just tried another checkout and it worked fine. You should see output like this... cvs checkout: Updating PythonCard U PythonCard/.cvsignore U PythonCard/EXIF.py ... ... ... U PythonCard/tools/textEditor/scriptlets/testIgnore.py U PythonCard/tools/textEditor/scriptlets/unorderedList.py After doing the checkout, I did a cd into the PythonCard dir and typed cvs update and got... cvs update: Updating . cvs update: Updating components cvs update: Updating docs ... ... ... cvs update: Updating tools/textEditor cvs update: Updating tools/textEditor/scriptlets On my broadband connection both of these actions took much less than a minute. Are you using cvs from the command-line or something like tortoisecvs? ka |
From: normanwinn <nor...@on...> - 2004-09-24 20:05:58
|
Hi, Kept trying cvs and, finally, it worked. All the files downloaded. Then I did the update. Commands (I presume in python) flashed by and I continued what I was doing and let it get on with it. Then, suddenly, the laptop's speaker started blaring out at full volume - even though the volume control (Windows XP) was near the minimum. Must have been the control Eventually I hit the 'Mute' button and the very loud noise stopped. The command window where the update was running was filled with control characters (which no doubt turned the speaker on) and general ascii garbage. I let this continue a while thinking it might just be normal. Eventually I killed the process and tried again. Same thing. I now have what appears to be a complete set PythonCardPrototype files but they are all kind of shaded out. Any ideas? Norman Winn |
From: Arthur E. <ar...@ia...> - 2004-09-24 14:38:05
|
On Sep 24, 2004, at 08:51, Kevin Altis wrote: > Without seeing the code, it is difficult to say, but are you using > threads? If so, you can't access your GUI windows and components > directly from the thread(s) handling the sockets. You need to use > something that is thread-safe such as the Python Queue module. A > couple of samples use threading and Queue and others avoid threads by > using generators, but that probably wouldn't work for sockets. If you > use something like Twisted then you don't need threads. > > There are other possible problems, but again it is a bit difficult to > say without seeing some code. If you can zip it up and it isn't too > big, then maybe you can send it to the list, otherwise, email me > directly. > > You might also look at: > > http://wiki.wxpython.org/index.cgi/LongRunningTasks That's a very useful page. The example given uses the wx event mechanism and that seems a good solution for my problem. I now see passing a reference to the GUI in the thread was causing trouble. Thanks, I'll give it a try. Arthur |
From: Heimburger, R. P <rph...@ba...> - 2004-09-24 12:24:22
|
=20 Thanks! =20 ________________________________ From: Kevin Altis [mailto:al...@se...]=20 Sent: Thursday, September 23, 2004 4:21 PM To: Heimburger, Ralph P Cc: pyt...@li... Subject: Re: [Pythoncard-users] Capturing RETURN key and translating to TAB =20 On Sep 23, 2004, at 11:59 AM, Heimburger, Ralph P wrote:=20 =20 I have a requirement to capture the RETURN key and treat it like a TAB so that both TAB and RETURN will perform the same function. I have a "global" on_keyPress(self, event) defined but need help in figuring out the syntax of the event to fire:=20 =20 def on_keypress(self, event):=20 =20 if event.keyCode =3D=3D wx.WXK_RETURN:=20 =20 event.target.MouseUpEvent=20 =20 # other things I've tried that don't work=20 =20 #self.components.keys(wx.WXK_TAB)=20 =20 #event.m_keyCode =3D wx.WXK_TAB=20 =20 =20 The wxPython 2.5.2.x MigrationGuide.html document has an example using wx.NavigationKeyEvent, which is new with wxPython 2.5.2. Adapting that to cause the return key to behave the same as the tab key using PythonCard event attribute names gives us this example:=20 =20 def on_keyDown(self, event):=20 # wx.WXK_RETURN is 13=20 if event.keyCode =3D=3D wx.WXK_RETURN:=20 if event.shiftDown:=20 flags =3D wx.NavigationKeyEvent.IsBackward=20 else:=20 flags =3D wx.NavigationKeyEvent.IsForward=20 if event.controlDown:=20 flags |=3D wx.NavigationKeyEvent.WinChange=20 event.target.Navigate(flags)=20 else:=20 event.skip()=20 =20 Remember that if you use an on_keyDown event handler, all components that receive key events that don't have their own keyDown handlers will end up using that event handler. If you just want it to handle TextField components you might want to add a test for the class or class name and call event.skip() if necessary. Here's one possibility:=20 =20 if event.target.__class__.__name__ =3D=3D 'TextField':=20 ...=20 =20 ka |
From: Kevin A. <al...@se...> - 2004-09-24 06:51:08
|
On Sep 23, 2004, at 6:01 PM, Arthur Elsenaar wrote: > Hi, > > I'm trying to have multiple sockets updating progressbars and textual > status fields in a pythoncard window. I tried different approaches, > but am having very weird problems (yes, I'm rather new to python and > card). > > The most straight forward approach is to use asyncore as outlined > here: http://effbot.org/zone/effnews-1.htm > > I pass a reference to the async class, so it can find the widgets to > update. This works, but after a number of subsequent downloads, python > bails out with ugly errors like Bus error, segmentation fault.. also > rather strange visual anomalies occur; progressbars painted all over > the window, etc. nice, but not for this application. > > To me it looks like some memory corruption occurs, but how does this > happen? Circular references? Can I avoid these? > > Has anyone done something similar? I tried threads, but had exactly > the same problems, believing me that it has to do with how I try to > access the widgets from an instance of a class. When I use the > asyncore supposedly non blocking sockets, pythoncards GUI still > freezes up. Event loop problems? > > Hope my description rings a bell somewhere. > > Arthur > Without seeing the code, it is difficult to say, but are you using threads? If so, you can't access your GUI windows and components directly from the thread(s) handling the sockets. You need to use something that is thread-safe such as the Python Queue module. A couple of samples use threading and Queue and others avoid threads by using generators, but that probably wouldn't work for sockets. If you use something like Twisted then you don't need threads. There are other possible problems, but again it is a bit difficult to say without seeing some code. If you can zip it up and it isn't too big, then maybe you can send it to the list, otherwise, email me directly. You might also look at: http://wiki.wxpython.org/index.cgi/LongRunningTasks ka |
From: Alex T. <al...@tw...> - 2004-09-24 01:35:20
|
At 20:10 23/09/2004 -0500, Ted Campbell wrote: >The problem I'm having now is that the HtmlWindow.text field only seems to >accept a filename or URL, but not literal text. I'd like to be able to >say, e.g., > > HtmlWindow1.text = 'This is <b>sample</b> text' > >and have that displayed as HTML text in the window. Any chance the >HtmlWindow component could be tweaked to allow that? If the first character of the text being set is a "<" then it will do what you want - >HtmlWindow1.text = '<p>This is <b>sample</b> text</p>' otherwise it interprets the text as a URL name to load. If it's not convenient to ensure that the first char is a "<", then you can instead call SetPage > HtmlWindow1.SetPage('This is <b>sample</b> text') btw - this answer is from a combination of docs and source code - i.e. I haven't actually test it - but I'm fairly sure it's right. If not, my apologies .... -- Alex. |
From: Ted C. <te...@Te...> - 2004-09-24 01:09:23
|
I've been working with PythonCards as a framework to develop a hyperCard-like application utilizing the "card stack" format that hyperCard popularized. In my version, I want each "card" to be a tiny HTML window, and the user can click on a radio button to switch between editing HTML code for the card (using the codeEditor component) and viewing the card (using the HtmlWindow component). The problem I'm having now is that the HtmlWindow.text field only seems to accept a filename or URL, but not literal text. I'd like to be able to say, e.g., HtmlWindow1.text = 'This is <b>sample</b> text' and have that displayed as HTML text in the window. Any chance the HtmlWindow component could be tweaked to allow that? /ted Ted Campbell te...@Te... |
From: Arthur E. <ar...@ia...> - 2004-09-24 01:01:58
|
Hi, I'm trying to have multiple sockets updating progressbars and textual status fields in a pythoncard window. I tried different approaches, but am having very weird problems (yes, I'm rather new to python and card). The most straight forward approach is to use asyncore as outlined here: http://effbot.org/zone/effnews-1.htm I pass a reference to the async class, so it can find the widgets to update. This works, but after a number of subsequent downloads, python bails out with ugly errors like Bus error, segmentation fault.. also rather strange visual anomalies occur; progressbars painted all over the window, etc. nice, but not for this application. To me it looks like some memory corruption occurs, but how does this happen? Circular references? Can I avoid these? Has anyone done something similar? I tried threads, but had exactly the same problems, believing me that it has to do with how I try to access the widgets from an instance of a class. When I use the asyncore supposedly non blocking sockets, pythoncards GUI still freezes up. Event loop problems? Hope my description rings a bell somewhere. Arthur |
From: Kevin A. <al...@se...> - 2004-09-23 20:21:33
|
On Sep 23, 2004, at 11:59 AM, Heimburger, Ralph P wrote: > I have a requirement to capture the RETURN key and treat it like a TAB=20= > so that both TAB and RETURN will perform the same function.=A0=A0 I = have a=20 > =93global=94 on_keyPress(self, event) defined but need help in = figuring=20 > out the syntax of the event to fire: > > def on_keypress(self, event): > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if event.keyCode =3D=3D wx.WXK_RETURN: > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = event.target.MouseUpEvent > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0 # other things I=92ve = tried that don=92t work > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = #self.components.keys(wx.WXK_TAB) > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 #event.m_keyCode =3D = wx.WXK_TAB > > thanks > > Ralph Heimburger > > Babcock & Wilcox Enterprise Systems > > 330-860-1858 > The wxPython 2.5.2.x MigrationGuide.html document has an example using=20= wx.NavigationKeyEvent, which is new with wxPython 2.5.2. Adapting that=20= to cause the return key to behave the same as the tab key using=20 PythonCard event attribute names gives us this example: def on_keyDown(self, event): # wx.WXK_RETURN is 13 if event.keyCode =3D=3D wx.WXK_RETURN: if event.shiftDown: flags =3D wx.NavigationKeyEvent.IsBackward else: flags =3D wx.NavigationKeyEvent.IsForward if event.controlDown: flags |=3D wx.NavigationKeyEvent.WinChange event.target.Navigate(flags) else: event.skip() Remember that if you use an on_keyDown event handler, all components=20 that receive key events that don't have their own keyDown handlers will=20= end up using that event handler. If you just want it to handle=20 TextField components you might want to add a test for the class or=20 class name and call event.skip() if necessary. Here's one possibility: if event.target.__class__.__name__ =3D=3D 'TextField': ... ka= |
From: Kevin A. <al...@se...> - 2004-09-21 21:40:49
|
We're having a discussion on wxPython-dev about ways to start versioning wxPython, which would allow a user or developer to maintain multiple versions of wxPython on their system without conflict. I'm curious how many people are still using release 0.7.3.1 or earlier due to the need to keep wxPython 2.4.x running on their systems? Since PythonCard release 0.8 and later require wxPython 2.5.x I already posted about one possible workaround, but it is mostly for people running Windows. http://altis.pycs.net/2004/08/20.html I imagine that the folks running "ye olde prototype" version are using Linux systems, and in particular Debian where the latest release of wxPython is not part of the stable branch. Anyway, if you're using the old prototype due to the wxPython 2.5.x requirement for release 0.8 I would like to hear from you. You can reply directly to me rather than replying to the whole list. Thanks, ka |
From: Kevin A. <al...@se...> - 2004-09-21 18:25:33
|
On Sep 19, 2004, at 10:27 AM, Brad Allen wrote: > Seems like it is still not working... > >> SF Site Status shows that anonymous cvs for projects starting with p >> are down... >> >> "( 2004-09-17 06:55:49 - Project CVS Service ) As of 2004-09-17 >> there is a problem with the CVS host serving anonymous CVS, nightly >> tarballs and ViewCVS for projects that start with the letters q, z, >> p, m, t, n and y. We currently do not have an estimate on when they >> will be back up." >> >> http://sourceforge.net/docman/display_doc.php?group_id=1&docid=2352 >> >> Just check that page or attempt to do a checkout periodically until >> you have success. >> The SF page doesn't say they have resolved the problem, but this morning I was able to view CVS via the web interface as well as do an anonymous checkout. ka |
From: Ruben M. <rmc...@ya...> - 2004-09-20 20:30:59
|
--- Brad Allen <bra...@ma...> wrote: > There's definitely a big gap right there in the open > source > offerings. Building something like FileMaker or MS > Access would be an > enormous task, though. There is a tool called Rekall that tries to do that. By definition it sounds like what you are looking for. It even uses Python. However, I am not sure of MAC support. And, although it is licensed under the GPL, there seems to be a strong push to make you buy the commercial version. If you want to investigate it start by looking here: RekallRevealed.Org. -Ruben __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Nick L. <ni...@ja...> - 2004-09-19 18:31:38
|
Well with the help you've given I've managed to get my first PythonCard app running succesfully :) Many, many thanks, Nick. -----Original Message----- From: Kevin Altis [mailto:al...@se...] Sent: 19 September 2004 18:37 To: Nick Lunt Cc: PythonCard Subject: Re: [Pythoncard-users] Capture <return> On Sep 19, 2004, at 10:31 AM, Nick Lunt wrote: > Many thanks for the quick response, that has helped tremendously. > > I'll also go through the examples. > I should have specified that the simple way to find examples is to use the findfiles tool. For example, to find keyPress handlers, you might use: Search for: on_.*keyPress Directories: location of your copy of PythonCard here, perhaps limited to the samples or tools dirs File types: *.py;*.pyw with both Case sensitive and Search subdirectories checked. You can double-click on one of the lines found and it will open the file up with the codeEditor and jump to that line in the source. Searching for keyCode == would be another way to find examples, but the former assumes you didn't already know the attribute. ka --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.766 / Virus Database: 513 - Release Date: 17/09/2004 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.766 / Virus Database: 513 - Release Date: 17/09/2004 |
From: Kevin A. <al...@se...> - 2004-09-19 17:36:56
|
On Sep 19, 2004, at 10:31 AM, Nick Lunt wrote: > Many thanks for the quick response, that has helped tremendously. > > I'll also go through the examples. > I should have specified that the simple way to find examples is to use the findfiles tool. For example, to find keyPress handlers, you might use: Search for: on_.*keyPress Directories: location of your copy of PythonCard here, perhaps limited to the samples or tools dirs File types: *.py;*.pyw with both Case sensitive and Search subdirectories checked. You can double-click on one of the lines found and it will open the file up with the codeEditor and jump to that line in the source. Searching for keyCode == would be another way to find examples, but the former assumes you didn't already know the attribute. ka |
From: Brad A. <bra...@ma...> - 2004-09-19 17:31:10
|
Seems like it is still not working... >SF Site Status shows that anonymous cvs for projects starting with p >are down... > >"( 2004-09-17 06:55:49 - Project CVS Service ) As of 2004-09-17 >there is a problem with the CVS host serving anonymous CVS, nightly >tarballs and ViewCVS for projects that start with the letters q, z, >p, m, t, n and y. We currently do not have an estimate on when they >will be back up." > >http://sourceforge.net/docman/display_doc.php?group_id=1&docid=2352 > >Just check that page or attempt to do a checkout periodically until >you have success. > >ka > >On Sep 17, 2004, at 1:46 AM, normanwinn wrote: > >>Hi, >> >>I am trying to get cvs working. Have followed the instructions in >>Kevin Altis document on the subject. Installing cvs has gone OK but >>I have had no luck in connecting. This doc doesn't mention the need >>to log in but the sourceforge guide >>(http://sourceforge.net/cvs/?group_id=19015) does. If I go the >>sourceforge route and issue this command: >> >>cvs -d:pserver:ano...@cv...:/cvsroot/pythoncard login >> >>I get this response: >> >>Logging in to :pserver:ano...@cv...:2401/cvsroot/pythoncard >>CVS password: >> >>When I hit enter (as instructed) I get this: >> >>cvs [login aborted]: unrecognized auth response from >>cvs.sourceforge.net: cvs ps >>erver: cannot open /cvsroot/pythoncard/CVSROOT/config: Input/output error >> >>I'm sure the answer is simple but I can't fathom it out. Thanks for any help, >> >>Norman > > > >------------------------------------------------------- >This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 >Project Admins to receive an Apple iPod Mini FREE for your judgement on >who ports your project to Linux PPC the best. Sponsored by IBM. >Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php >_______________________________________________ >Pythoncard-users mailing list >Pyt...@li... >https://lists.sourceforge.net/lists/listinfo/pythoncard-users |
From: Nick L. <ni...@ja...> - 2004-09-19 17:27:22
|
Many thanks for the quick response, that has helped tremendously. I'll also go through the examples. Thanks again, Nick. -----Original Message----- From: Kevin Altis [mailto:al...@se...] Sent: 19 September 2004 18:23 To: Nick Lunt Cc: PythonCard Subject: Re: [Pythoncard-users] Capture <return> On Sep 19, 2004, at 10:14 AM, Nick Lunt wrote: > Hi folks, > > Im sure this must be in the documentation somewhere, but Im afraid I > can't > find it. > Also I've searched the archives and I can't find it there either. > > Could someone please tell me how to capture when <return> is pressed > on a > keyboard ? > > I know this much : > > def on_ipInput_keyPress(self, event): > print "key pressed %s" %event > > which outputs something like : > > you pressed <wx._core.KeyEvent; proxy of C++ wxKeyEvent instance at > _0cf41200_p_wxKeyEvent> > > But I don't know how to specifically capture the <return> key. > > I apologise in advance for this post, as Im sure that this must be > documented somewhere, I simply cannot find where. Any pointers to the > relevant documentation greatfully received. > > Many thanks > Nick. If you use dir() on the event you'll see all the methods and attributes including the base wxPython ones. In this case, PythonCard "decorates" the event instance with some helper attributes so you don't have to use the methods. keyCode has what you're looking for. Return is ASCII 13, so... def on_ipinput_keyPress(self, event): print dir(event) if event.keyCode == 13: print "return" else: event.skip() If you want the field to get the return key, then you'll need to insert it yourself or call event.skip() in addition to whatever other processing you were planning on. And no, the event attributes are not documented very well, but they are used in quite a few of the samples and tools. You can take a look at event.py to see the basic "decoration" done for all events, mouse events, key events, etc. For component specific attributes, look at the individual component files. ka --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.766 / Virus Database: 513 - Release Date: 17/09/2004 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.766 / Virus Database: 513 - Release Date: 17/09/2004 |
From: Kevin A. <al...@se...> - 2004-09-19 17:22:57
|
On Sep 19, 2004, at 10:14 AM, Nick Lunt wrote: > Hi folks, > > Im sure this must be in the documentation somewhere, but Im afraid I > can't > find it. > Also I've searched the archives and I can't find it there either. > > Could someone please tell me how to capture when <return> is pressed > on a > keyboard ? > > I know this much : > > def on_ipInput_keyPress(self, event): > print "key pressed %s" %event > > which outputs something like : > > you pressed <wx._core.KeyEvent; proxy of C++ wxKeyEvent instance at > _0cf41200_p_wxKeyEvent> > > But I don't know how to specifically capture the <return> key. > > I apologise in advance for this post, as Im sure that this must be > documented somewhere, I simply cannot find where. Any pointers to the > relevant documentation greatfully received. > > Many thanks > Nick. If you use dir() on the event you'll see all the methods and attributes including the base wxPython ones. In this case, PythonCard "decorates" the event instance with some helper attributes so you don't have to use the methods. keyCode has what you're looking for. Return is ASCII 13, so... def on_ipinput_keyPress(self, event): print dir(event) if event.keyCode == 13: print "return" else: event.skip() If you want the field to get the return key, then you'll need to insert it yourself or call event.skip() in addition to whatever other processing you were planning on. And no, the event attributes are not documented very well, but they are used in quite a few of the samples and tools. You can take a look at event.py to see the basic "decoration" done for all events, mouse events, key events, etc. For component specific attributes, look at the individual component files. ka |
From: Nick L. <ni...@ja...> - 2004-09-19 17:10:41
|
Hi folks, Im sure this must be in the documentation somewhere, but Im afraid I can't find it. Also I've searched the archives and I can't find it there either. Could someone please tell me how to capture when <return> is pressed on a keyboard ? I know this much : def on_ipInput_keyPress(self, event): print "key pressed %s" %event which outputs something like : you pressed <wx._core.KeyEvent; proxy of C++ wxKeyEvent instance at _0cf41200_p_wxKeyEvent> But I don't know how to specifically capture the <return> key. I apologise in advance for this post, as Im sure that this must be documented somewhere, I simply cannot find where. Any pointers to the relevant documentation greatfully received. Many thanks Nick. --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.766 / Virus Database: 513 - Release Date: 17/09/2004 |
From: Alex T. <al...@tw...> - 2004-09-19 01:37:13
|
I was reviewing old email (aka "tidying up") and realized I hadn't sent my reply to this - so apologies for replying kind o flate. At 00:28 24/08/2004 -0700, Kevin Altis wrote: >On Aug 23, 2004, at 11:58 PM, jamesr wrote: > >>The multiple layout windows i briefly read about above may be overkill >>- but a widget that 'encapsulates' other widgets could be handy in >>this case. A vaguish suggestion - a 'Group' Widget that takes as it >>items a list of other widget names. Setting an attribute of this >>widget changes the attributes (if they have it) of all listed widgets >>connected to it Immediately, I would use this to change the >>visibility of groups of widgets with one call, but an ability to add >>or subtract (relatively) from the position x and y from a group of >>objects would be very handy too, as well as font or color. Anyone else >>think of a use for this? > >If you want to do something like this today I suggest making a list of the >component names that you can then do an operation on. For example... > >group = ['btnOne', 'btnTwo', 'fldOne', 'someList'] >for c in group: > self.components[c].visible = False > >...could be used to make all the components in the "group" hidden. Rather >than string names you could just as easily use the actual component >references, it just depends on what you prefer. If you want to make this >more generic then use setattr within a function that takes the group list, >attribute name, and value as parameters. > >def groupChange(self, group, attribute, value): > for name in group: > setattr(self.components[name], attribute, value) > >attribute is a string like 'visible'. The advantage of James's suggestion is that it is a resourceEditor change, rather than a code editor change, to add or subtract items from the "group". So I'll suggest using an invisible component (say a StaticBox - which could more or less surround the relevant components) and store the list of component names in its "userdata". The change to the code suggested are obvious, but his moves it out to something you change in the resource Editor. -- Alex. |