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: Bo G. <bo...@sy...> - 2005-03-31 17:25:38
|
My biggest requests right now are sizer support, and a scrollable Background & PageBackground, but that's just because of the particular challenges I'm faced with today. Ask me tomorrow, different answers probably. I also would like to see more features in the resource editor (as others have mentioned), but first give us multiple windows, please. Code completion in the code editor would be sweet indeed. The other thing I would like to see is a list of valid events and methods for each Pythoncard component, which could act as an easy reference guide. I guess you could call that documentation. Pythoncard is awesome, it's definitely making life easier for me. No complaints really, just a request to keep adding features. BG Kevin Altis wrote: >Periodically I like to ask people what is missing from >PythonCard that they would like to see added. Since >we're very close to a PythonCard 1.0 API release - >essentially just waiting on wxPython 2.6 to be >released before proceeding with cleanup and tweaks for >1.0 - now is a good time to get feedback to see if >PythonCard in its current form misses the mark for >what people expect or want to see from "the simple way >to build Python GUI applications". > >Please reply with your gripes about PythonCard, >whether it is something as fundamental as the strong >ties to wxPython, the somewhat clunky resourceEditor, >lack of sizer support, missing widgets supported by >wxPython, standalone build issues, etc. If you don't >mention a problem, then chances are it won't get >coverage on the developers mailing list that it >deserves. If you think the project focus is wrong, >then say so; if you expected a better tool for >building database applications, share your thoughts... >If you really want something that works just like >HyperCard did, now is a good time to make that clear. >And yes, documentation or lack of, just like >everything else, is fair game. If you've been lurking >on the list, its time to speak up :) > >You can also reply with what you like most about >PythonCard, so as we're thinking about later versions >from 1.1 - 2.0, that feature doesn't get dropped. > >ka >p.s. I'm currently traveling and using an email >address that is effectively a blackhole for messages, >so there is no need to reply to this address as I >won't be checking it. > > > >__________________________________ >Do you Yahoo!? >Yahoo! Small Business - Try our new resources site! >http://smallbusiness.yahoo.com/resources/ > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >_______________________________________________ >Pythoncard-users mailing list >Pyt...@li... >https://lists.sourceforge.net/lists/listinfo/pythoncard-users > > |
From: Andy T. <an...@ha...> - 2005-03-31 12:27:04
|
Roan Embrechts wrote: > Andy Todd wrote: > > You are right, the linux installation instructions are a bit out of > >> date. I'll update them and update the web site. >> >> If I were you I'd stick to the binaries though, unlesss you really >> know your way around your system. >> >> First, the installation of wxPython. Checking the distribution page >> [1] there are binary RPMs of wxPython 2.5.4.1 for Python 2.3 and 2.4 >> on Fedora Core 2, which I presume will work with Fedora Core 3. >> >> Once these are installed check everything is working by starting your >> Python interpreter and typing; >> >> >>> import wx >> >> If there are no error messages then you should be O.K. I'd then follow >> the existing instructions on the web page to download and install the >> PythonCard RPM. Let us know how this goes. >> >> [1] http://www.wxpython.org/download.php#binaries >> >> Regards, >> Andy > > > Current situation: > > $python > >>>> import wx >>>> > > This works fine. > > When I am in the pythoncard directory and I type > ./samples/minimal/minimal.py > > it still produces an error dialog stating that I only have wxPython > 2.5.1.5 but I need wxPython 2.5.2.8. > > --- > > I try again to install the wxPython common, runtime and develop packages > for fedora core 2, gtk2, ansi. Then I reinstall pythoncard 0.8.1. I > still get the same error... > > thanks for trying to help, > > Roan The installation instructions (and RPM packages) have been updated in the last couple of days. Can you possibly try installing again - you may need to remove the packages you have already installed, or at least upgrade rather than install the new packages. I would suggest a quick read of http://www.tuxfiles.org/linuxhelp/rpminstall.html If you have any more problems please bring them up on the list. Regards, Andy -- -------------------------------------------------------------------------------- From the desk of Andrew J Todd esq - http://www.halfcooked.com/ |
From: <bra...@om...> - 2005-03-31 05:18:48
|
Now it makes more sense. The model.ChildWindow does not run on_initialize until the calling handler has completed. I will test that in debug mode sometime soon, but it sounds like a good explanation. Liam Clarke <cy...@gm...> wrote on 03/30/2005 05:20:06 PM: > Hi Brad, > > AFAIK, and Kevin Altis will no doubt correct me if I'm wrong... > > > Class Parent(model.Background): > > def on_button1_mouseClick(self, event): > x = model.ChildWindow(self, child.Child) > x.id_emp = 20 > > > Class Child(model.Background) > > def on_initialize(self, event): > self.getClient(self.id_emp) > > > > So, from what I understand, the event queue would go like this > > User clicks button1, a new event triggers, which runs the method. > That method creates a new event, Child initialize. > > But, the initalise event waits in the queue until the > on_button1_mouseClick finishes. > > So that method can take all the time in the world to do what it wants, > and Child will > only initialise when it's done. > > Which is why you need to thread GUI stuff that's waits a long time for > something to return to avoid 'hanging', because the screen won't > repaint (which is an event) until the prior event triggered method > finishes. > > Make sense? If it doesn't, let me know. > > > > Regards, > > > Liam Clarke > > > > > > > > > > > > On Wed, 30 Mar 2005 17:03:19 -0600, bra...@om... > <bra...@om...> wrote: > > > > I have a question about this approach. It does work, but I don't understand > > it as well > > as I'd like and I worry that it depends too much on timing. When does the > > child > > window's on_initialize run? What if on a really fast computer it runs before > > the > > childWindow.id_emp is bound? > > > > > > pyt...@li... wrote on 03/21/2005 03:55:47 > > PM: > > > > > > > Hi Brad, > > > > > > You need to put the raise method in a method of the childWindow. > > > I'm on XP, and calling the childWindow's raise method from the > > > originating method as above never works for me. > > > > > > i.e. > > > > > > def on_empMultiColumnList_itemActivated(self, event): > > > #Do stuff to derive id_emp > > > childWindow = model.childWindow(self, empDetail.bgEmpDetail) > > > childWindow.id_emp = id_emp > > > > > > > > > and in empDetail - > > > > > > class bgEmpDetail(model.Background): > > > def on_initialise(self, event): > > > #This will need explaining > > > self.popuulateFields(self.id_emp) > > > self.Raise() > > > > > > See, what happens is that when a child window is created, the method > > > that created finishes before the child window's on_initialise gets > > > called. > > > > > > At the mo, my thing with childWindow.id_emp = id_emp is the only way > > > of passing other parameters to the on_initialise() method. > > > > > > So, you can pass the parameters in, and then your child windows > > > initialisation can act on them. > > > > > > And, sticking Raise() in the child windows init method fixed your > > > problem for me. > > > > > > > > > I hope it helps. If it's confusing at all, let me know and I'll try > > > and explanify further. > > > > > > > > > Regards, > > > > > > Liam Clarke > > > > > > > > > > > > On Mon, 21 Mar 2005 11:11:40 -0600, bra...@om... > > > <bra...@om...> wrote: > > > > > > > > The Raise method for a child window seems not to work on the Mac, but > > does > > > > work under Windows. On the Mac, the child window starts to pop in front > > of > > > > the parent window, but then it withdraws behind. From looking at > > message > > > > watcher, It's almost as if the second click in my doubleclick is > > bringing > > > > the parent window forward. > > > > > > > > Is there something else I should be doing other than Raise(), or is > > this a > > > > bug? > > > > > > > > Here is the method runs when I doubleclick my multicolumnlist: > > > > > > > > def on_empMultiColumnList_itemActivated(self, event): > > > > """When an entry is double clicked""" > > > > indexClicked = event.m_itemIndex > > > > base = self.components > > > > rows = base.empMultiColumnList.GetSelectedItems() > > > > if len(rows) == 0: > > > > return > > > > print rows > > > > id_emp = rows[0][0] > > > > empDetail.id_emp = id_emp > > > > self.detailWindow = > > > > model.childWindow(self,empDetail.bgEmpDetail) > > > > self.detailWindow.populateFields(id_emp) > > > > self.detailWindow.Raise() > > > > > > > > > > > > I'm running PythonCard .81, wxPython 2.5.4.1, Python 2.3, Mac OS > > 10.3.8. > > > > > > > > > > > > > -- > > > '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. > > > > > > > > > ------------------------------------------------------- > > > SF email is sponsored by - The IT Product Guide > > > Read honest & candid reviews on hundreds of IT Products from real users. > > > Discover which products truly live up to the hype. Start reading now. > > > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > > > _______________________________________________ > > > Pythoncard-users mailing list > > > Pyt...@li... > > > https://lists.sourceforge.net/lists/listinfo/pythoncard-users > > > > > -- > '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: <bra...@om...> - 2005-03-30 23:04:11
|
I have a question about this approach. It does work, but I don't understand it as well as I'd like and I worry that it depends too much on timing. When does the child window's on_initialize run? What if on a really fast computer it runs before the childWindow.id_emp is bound? pyt...@li... wrote on 03/21/2005 03:55:47 PM: > Hi Brad, > > You need to put the raise method in a method of the childWindow. > I'm on XP, and calling the childWindow's raise method from the > originating method as above never works for me. > > i.e. > > def on_empMultiColumnList_itemActivated(self, event): > #Do stuff to derive id_emp > childWindow = model.childWindow(self, empDetail.bgEmpDetail) > childWindow.id_emp = id_emp > > > and in empDetail - > > class bgEmpDetail(model.Background): > def on_initialise(self, event): > #This will need explaining > self.popuulateFields(self.id_emp) > self.Raise() > > See, what happens is that when a child window is created, the method > that created finishes before the child window's on_initialise gets > called. > > At the mo, my thing with childWindow.id_emp = id_emp is the only way > of passing other parameters to the on_initialise() method. > > So, you can pass the parameters in, and then your child windows > initialisation can act on them. > > And, sticking Raise() in the child windows init method fixed your > problem for me. > > > I hope it helps. If it's confusing at all, let me know and I'll try > and explanify further. > > > Regards, > > Liam Clarke > > > > On Mon, 21 Mar 2005 11:11:40 -0600, bra...@om... > <bra...@om...> wrote: > > > > The Raise method for a child window seems not to work on the Mac, but does > > work under Windows. On the Mac, the child window starts to pop in front of > > the parent window, but then it withdraws behind. From looking at message > > watcher, It's almost as if the second click in my doubleclick is bringing > > the parent window forward. > > > > Is there something else I should be doing other than Raise(), or is this a > > bug? > > > > Here is the method runs when I doubleclick my multicolumnlist: > > > > def on_empMultiColumnList_itemActivated(self, event): > > """When an entry is double clicked""" > > indexClicked = event.m_itemIndex > > base = self.components > > rows = base.empMultiColumnList.GetSelectedItems() > > if len(rows) == 0: > > return > > print rows > > id_emp = rows[0][0] > > empDetail.id_emp = id_emp > > self.detailWindow = > > model.childWindow(self,empDetail.bgEmpDetail) > > self.detailWindow.populateFields(id_emp) > > self.detailWindow.Raise() > > > > > > I'm running PythonCard .81, wxPython 2.5.4.1, Python 2.3, Mac OS 10.3.8. > > > > > -- > '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. > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users |
From: <bra...@om...> - 2005-03-30 18:23:40
|
Thanks, Liam. Your approach of the using the PythonCard MenuBar constructor has worked for me. from PythonCard import menu menu.MenuBar(self, self.getParent().menuBar) In cases where a child window is the child of a PageBackground, I just store the wx.GetTopLevelParent(self).menuBar in the PageBackground, and the child window can obtain it from there. |
From: Kevin A. <al...@ya...> - 2005-03-30 18:07:36
|
I've revised the internationalResourceName function in model.py to support platform-specific resource files as well as language and country specific names. You don't have to use platform-specific files, but it is an option for those that want to tweak a static layout for each platform. For example, using the -l (log) option under Windows on my system, I get the following DEBUG output which shows the possible valid resource filenames and the order they are searched for. Valid platform prefixes are: win, gtk, mac. DEBUG: : Wed Mar 30 09:54:22 2005: default: ('en_US', 'cp1252') DEBUG: : Wed Mar 30 09:54:22 2005: en US DEBUG: : Wed Mar 30 09:54:22 2005: ['minimal.win.en_US.rsrc.py', 'minimal.win.en.rsrc.py', 'minimal.en_US.rsrc.py', 'minimal.en.rsrc.py', 'minimal.win.rsrc.py', 'minimal.rsrc.py'] __________________________________ Do you Yahoo!? Yahoo! Mail - Find what you need with new enhanced search. http://info.mail.yahoo.com/mail_250 |
From: Phil E. <ph...@li...> - 2005-03-30 15:45:12
|
I've (finally!) posted updated RPMs for PythonCard 0.8.1 on my website for anyone that wants them. The URL is: http://www.linux2000.com/pythoncard.html Copies of the RPMs are also available from the main PythonCard download page on Sourceforge. -- Regards Phil Edwards Brighton, UK |
From: Andy T. <an...@ha...> - 2005-03-30 09:56:18
|
Brian Debuire wrote: > Hi there, > > I've noticed that there is a notebook implementation in Python Card > shown in testNotebook.py, but where can I find it?? It is not included > in my 8.0 version of Python Card, is it included with the lattest version?? > > Thanks in advance, > > Brian > http://article.gmane.org/gmane.comp.python.pythoncard/1060 Regards, Andy -- -------------------------------------------------------------------------------- From the desk of Andrew J Todd esq - http://www.halfcooked.com/ |
From: Kevin A. <al...@ya...> - 2005-03-30 06:38:36
|
I'm still not sure on the best way to deal with the desire to pass args to a child window, but I would like to propose one possible solution as well as clarify some of the issues surrounding child windows. As a test, I duplicated the minimal source and resource and added the following test code. def on_initialize(self, event): print "child initialize" def postInit(self, a, b): print "postInit" print a, b I modified the minimal sample by adding a button and the following code to create the child window as well as call an additional method once the other events have fired by using wx.CallAfter. def on_btn_mouseClick(self, event): print "mouseClick" self.myChild = model.childWindow(self, minchild.Minimal) wx.CallAfter(self.myChild.postInit, "hello", 2) This appears to work as expected, but may not be what Liam and others are looking for. I'll let them reply with their current solutions and what they want. model.childWindow is just a convenience function. PythonCard does not use __init__ in user code since that can be a dangerous place for user code as you might try and access or modify controls or methods that have not finished initializing in wxWidgets/wxPython. Thus the initialize event has been the way of doing initialization and the "event" is supposed to fire after all other wx initialization is done and the underlying control or window has "settled", so it is safe to do whatever manipulations you need. Furthermore, initialize is an event in an attempt to be more consistent, but that means it only has one argument, "event", just like all the other events. In the case of the childWindow function, the initialize event that fires is disconnected from the function call. Even if *args and **kwargs arguments were used in the childWindow function I couldn't pass them to initialize in a clean way. Making a separate method call that you have control over when it happens in relation to other events seems like the simplest solution. Given that this might be a common need, maybe we should have a PythonCard alias for wx.CallAfter? Additional thoughts? I can dig into this issue more next week. ka __________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail |
From: Liam C. <cy...@gm...> - 2005-03-30 01:01:59
|
r = {Background { Menus { components { (etc. etc. ) }}} #In other words a typical resource file. x = model.ChildWindow(self, foo.Main, rsrc = r) is the way to do it inline. On Tue, 29 Mar 2005 19:50:03 -0500, Bernie Hogan <ber...@ut...> wrote: > Hi there, > > Sorry if this is a n00b question. I'm putting together a data entry > application that has a number of states, each with its own particular > window. I've designed the windows, and constructed the data structure that > works across windows, but I can't link the resource files together. > > Is it the case that you can only run PythonCard resource files+scripts as > standalone applications? Is there a simple workaround either in the resource > file or in the python script. > > Take Care, > BERNiE > > Bernie Hogan > Ph.D. Student > Department of Sociology > [NetLab, Knowledge Media Design Institute] > University of Toronto > -- > Reply to Ber...@Ut... > > -- > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users > -- '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: Bernie H. <ber...@ut...> - 2005-03-30 00:55:36
|
Hi there, Sorry if this is a n00b question. I'm putting together a data entry application that has a number of states, each with its own particular window. I've designed the windows, and constructed the data structure that works across windows, but I can't link the resource files together. Is it the case that you can only run PythonCard resource files+scripts as standalone applications? Is there a simple workaround either in the resource file or in the python script. Take Care, BERNiE Bernie Hogan Ph.D. Student Department of Sociology [NetLab, Knowledge Media Design Institute] University of Toronto -- Reply to Ber...@Ut... -- |
From: <bri...@sy...> - 2005-03-30 00:49:55
|
How could it be any nicer than this? http://wiki.wxpython.org/index.cgi/PythonCard (via left side of http://pythoncard.sourceforge.net/) pyt...@li... wrote on 03/29/2005 02:41:38 PM: > Hi, > > A Pythoncard wiki would also be nice. > > And being able to pass arguments to children window when doing a > x = model.ChildWindow(), the current method works, but it's not > overly Pythonic. > > > Regards, > > Liam Clarke > > |
From: <bra...@om...> - 2005-03-29 22:57:43
|
I'm beginning to spend more time using PythonCard during the course of work, and...so far, so good. I'm glad to have a tool like this available for Python, and I'm grateful to Kevin and the other contributors for their work on PythonCard and all the help I'm getting on the mailing list. When my skill level improves, I hope to help in whatever way I can. One of the things I really like about PythonCard is the HyperCard-like event handling hierarchy. Another thing I like is that PythonCard wraps a lot of wxPython stuff that I'm not ready to take on yet, but still allows me to use wxPython in small ways when I need to. In that respect, I think of PythonCard as wxTrainingWheels. But in other respects, PythonCard is a powerful IDE whose features I am still learning about. For the 1.0 release, I vote for sticking closely to the .81 release but fixing some of the Resource Editor glitches. It would be nice to have new features but stability of the API is very important to me. That said, maybe some small improvements and refinements can be added without upsetting the apple cart. In particular, I'm wondering if the Resource Editor can be improved without significantly changing PythonCard's underlying structure. On the other hand, there is one big feature that I'm hoping can be in the 1.0 release -- the PageBackground (wxNotebook). This is in the .81 release, but it seems to be in an experimental stage. I'd like to have some of the kinks worked out and have good documentation for it. The ability to create a tabbed interface, with tabs inside of tabs, is vital to the kinds of applications I'm going to be working on. The splitter interface seems less important to me. I've been saving up a list of ideas for improvements in PythonCard, some of which may be best suited for a much later release. Maybe this stuff is obvious to those who have been using PythonCard for awhile, but it can't hurt to mention them.... * ability to add parameters to childWindow and have them show up in the backgrounds on_initialize * Create a new Text Entry dialog which allows for multiple input fields, so you don't have to build a custom dialog for that feature. Maybe it takes a list of fieldnames as a parameter. * Placing text into widgets requires string values. It would be nice to have type coersion of primitives handled automagically, as it was in HyperCard. Even better, it would be nice to have them return values of their original type when accessed. * Resource Editor: * unpredictable about resizing some widgets. I'd like to see more consistent resizing behavior. - this is worse on Mac, hopefully will improve w future wxWidgets - new users are scared off by flaky Resource Editor behavior - if we can't fix this short term, we should warn new users - not to think the rest of PythonCard is flaky, because it isn't. * when you click a widget, it shouldn't move. It should only move when you hold down the mouse for a noticeable time. As it stands, I keep accidentally moving widgets. * ability to select multiple multiple widgets and move them as a group * with multiple widget select, could also have an Alignment tool ala FileMaker * format painter, similar to FileMaker 6+ 1. select a widget, and choose "Format Painter" from menu 2. the cursor changes to a paintbrush 3. any widget you click takes on the color and font properties 4. press ESC to get out of format painter mode *An alternative to format painter concept is copy/paste properties idea * Property Editor needs to be brought to the fore when the main Resource Editor window is selected (I get tired of having to re-invoke Property Editor when I'm switching between apps) * Ability to delete widget by pressing delete key (mine doesn't work under Mac or WinXP) * Notebook widget easier to use Maybe a Notebook property to hold a list of resource module names, and tab titles. Then the tabs would automatically appear, just like multicolumn list columns. You could even store the resource for each tab inside main window resource * a nice clever UI for specifying tab order. FileMaker's approach to this isn't bad, but may be too difficult in the short term. Maybe a simple "Tab Order" dialog listing text entry widgets and allowing them to be reordered. Also, tab order should be unrelated to layer level * default font property for the background resource which contained widgets would inherit. This could be specified in the GUI for bknd properties * Tool to convert a resource with statically placed widgets to sizer-based layout, and then back again. Ideally this could be done in Resource Editor... Another idea is the use of little "spring" meta-widgets similar to Mac OS X interface builder. These little springs keep the edge of a widget near the side of the window. |
From: Liam C. <cy...@gm...> - 2005-03-29 22:41:45
|
Hi, A Pythoncard wiki would also be nice. And being able to pass arguments to children window when doing a x = model.ChildWindow(), the current method works, but it's not overly Pythonic. Regards, Liam Clarke On Tue, 29 Mar 2005 12:50:56 -0800, Peter C. Norton <spa...@le...> wrote: > It'd be nice if the python shell within codeEditor could be > re-initialized once you've gotten to the point where you've screwed > everything up. I don't see a way for doing that right now, except for > re-starting codeEditor. > > -Peter > > On Tue, Mar 29, 2005 at 09:01:35AM -0800, Kevin Altis wrote: > > Periodically I like to ask people what is missing from > > PythonCard that they would like to see added. Since > > we're very close to a PythonCard 1.0 API release - > > essentially just waiting on wxPython 2.6 to be > > released before proceeding with cleanup and tweaks for > > 1.0 - now is a good time to get feedback to see if > > PythonCard in its current form misses the mark for > > what people expect or want to see from "the simple way > > to build Python GUI applications". > > > > Please reply with your gripes about PythonCard, > > whether it is something as fundamental as the strong > > ties to wxPython, the somewhat clunky resourceEditor, > > lack of sizer support, missing widgets supported by > > wxPython, standalone build issues, etc. If you don't > > mention a problem, then chances are it won't get > > coverage on the developers mailing list that it > > deserves. If you think the project focus is wrong, > > then say so; if you expected a better tool for > > building database applications, share your thoughts... > > If you really want something that works just like > > HyperCard did, now is a good time to make that clear. > > And yes, documentation or lack of, just like > > everything else, is fair game. If you've been lurking > > on the list, its time to speak up :) > > > > You can also reply with what you like most about > > PythonCard, so as we're thinking about later versions > > from 1.1 - 2.0, that feature doesn't get dropped. > > > > ka > > p.s. I'm currently traveling and using an email > > address that is effectively a blackhole for messages, > > so there is no need to reply to this address as I > > won't be checking it. > > > > > > > > __________________________________ > > Do you Yahoo!? > > Yahoo! Small Business - Try our new resources site! > > http://smallbusiness.yahoo.com/resources/ > > > > > > ------------------------------------------------------- > > SF email is sponsored by - The IT Product Guide > > Read honest & candid reviews on hundreds of IT Products from real users. > > Discover which products truly live up to the hype. Start reading now. > > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > > _______________________________________________ > > Pythoncard-users mailing list > > Pyt...@li... > > https://lists.sourceforge.net/lists/listinfo/pythoncard-users > > -- > The 5 year plan: > In five years we'll make up another plan. > Or just re-use this one. > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users > -- '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: Peter C. N. <spa...@le...> - 2005-03-29 20:50:59
|
It'd be nice if the python shell within codeEditor could be re-initialized once you've gotten to the point where you've screwed everything up. I don't see a way for doing that right now, except for re-starting codeEditor. -Peter On Tue, Mar 29, 2005 at 09:01:35AM -0800, Kevin Altis wrote: > Periodically I like to ask people what is missing from > PythonCard that they would like to see added. Since > we're very close to a PythonCard 1.0 API release - > essentially just waiting on wxPython 2.6 to be > released before proceeding with cleanup and tweaks for > 1.0 - now is a good time to get feedback to see if > PythonCard in its current form misses the mark for > what people expect or want to see from "the simple way > to build Python GUI applications". > > Please reply with your gripes about PythonCard, > whether it is something as fundamental as the strong > ties to wxPython, the somewhat clunky resourceEditor, > lack of sizer support, missing widgets supported by > wxPython, standalone build issues, etc. If you don't > mention a problem, then chances are it won't get > coverage on the developers mailing list that it > deserves. If you think the project focus is wrong, > then say so; if you expected a better tool for > building database applications, share your thoughts... > If you really want something that works just like > HyperCard did, now is a good time to make that clear. > And yes, documentation or lack of, just like > everything else, is fair game. If you've been lurking > on the list, its time to speak up :) > > You can also reply with what you like most about > PythonCard, so as we're thinking about later versions > from 1.1 - 2.0, that feature doesn't get dropped. > > ka > p.s. I'm currently traveling and using an email > address that is effectively a blackhole for messages, > so there is no need to reply to this address as I > won't be checking it. > > > > __________________________________ > Do you Yahoo!? > Yahoo! Small Business - Try our new resources site! > http://smallbusiness.yahoo.com/resources/ > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users -- The 5 year plan: In five years we'll make up another plan. Or just re-use this one. |
From: <bri...@sy...> - 2005-03-29 20:05:49
|
Is the PythonCardToDoList discontinued? http://wiki.wxpython.org/index.cgi/PythonCardToDoList In the current PythonCard my biggest problem is sys.argv If I have my own command line args and check for unexpect args in my code, that logic gets scrambled when I use the PythonCard resouce editor and it places the run options in the command line. I guess that when I plan to use PythonCard I need to make allowances for PythonCard command args, but I have my doubts about 'other args' in the Run Options window. I cannot get my own args into the command line this way. The resource_editor_overview.html,Figure 19 ("Run Options Dialog") does not even show the current 'other args' text field, so I'm more lost than ever. The other problem with sys.argv is that it complicates running code by importing a module. Without some tacky manipulation of sys.argv, I'm limited to running my code only one way, as a Python script. Perhaps Application __init__ should have an alternate argument for all the values which it currently searches in sys.argv. It does appear that all use of sys.argv, especially sys.argv[0], occurs through Application __init__ I'm glad to say that is my biggest PythonCard problem. As for wishes, I don't know the status or schedule of such things, but I would dearly like scroll controls (wxScrolledWindow?) for the background window. PythonCard is the easiest toolkit with the capability to place a bitmap on the background, so please don't drop any of the current background functionality in exchange for that scrolling. |
From: Liam C. <cy...@gm...> - 2005-03-29 19:26:21
|
Hi, While I enjoy the excitement of a good treasure hunt in model.py, some thorough docs would be good. I'd offer to write them, but I keep having "Oh, so that's how you do that" moments. On Tue, 29 Mar 2005 12:31:23 -0600, bra...@om... <bra...@om...> wrote: > > I think doubleclicking the widget in resource editor should bring up the > Property Editor, rather than the source file. This is the behavior in > HyperCard and similar environments such as Revolution. I think > shift-doubleclicking the widget might be a nice shortcut for bringing up the > source code. > > But which source code? Usually a background is linked to a Python script > containing a class MyBackground, and usually this is where an event is > stored...but not always. Maybe this should be a settable property in the > resource file, which defaults to undefined, and when undefined just looks > for a same-named Python script as the resource file. > > Also, regarding the opening of source code from Resource Editor, I think it > would be nice to have a global prefererence governing the choice of > preferred text editor. The choice of text editors is highly idiosyncratic, > and may not want to use the PythonCard Code Editor. > > > > > "Brian Debuire" <deb...@ho...> > Sent by: pyt...@li... > > 03/29/2005 11:59 AM > > To pyt...@li... > > cc > > Subject RE: [Pythoncard-users] time to share your PythonCard gripes and > likes > > > > > > Hi everyone, > > Personally, I would love the resource editor to be as simple as it is but > with user oriented features like when double clicking a button, open de > source file and add on_cmdButton_mouseClick(self, event) and stuff like > that. :) > > Hope this inspires to a powerfull editor, it would be really nice. > > Regards, > > > Brian > > _________________________________________________________________ > Don't just search. Find. Check out the new MSN Search! > http://search.msn.click-url.com/go/onm00200636ave/direct/01/ > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Pythoncard-users mailing list > Pyt...@li... > https://lists.sourceforge.net/lists/listinfo/pythoncard-users > > -- '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-03-29 19:20:21
|
I wouldn't worry too much about the Show method, I just have visible set to False by default for most of my windows. I'm a control freak. ;) On Tue, 29 Mar 2005 08:34:49 -0600, Brad Allen <bra...@ma...> wrote: > > > > Thanks, Liam! I'll try it when I get to work today. It looks like the key > difference from what I was trying to do is to use a constructor for the > menubar and then run the Show method. > > > self.menuBar = menu.MenuBar(self, self.parent.menuBar) > self.Show(1) > > > > > > > > Hey Brad, > > You may want to copy and paste the following code. I poked around > model.py in the bowels of Background, and here's how model.Background > sets a menu - > > def _createMenus(self, aResource): > # RDS - Only create a menubar if one is defined > # in the stack's resource file. > # This is a hack, I shouldn't be accessing > # the stack resource's __dict)__ directly. > if ('menubar' in aResource.__dict__) and (aResource.menubar is > not None): > self.menuBar = menu.MenuBar(self, aResource.menubar) > elif wx.Platform == '__WXMAC__' and self.GetParent() is None: > # always create at least a File menu with Quit on the Mac > # so we automatically get the Apple menu... > # KEA 2004-03-01 > # the elif was updated to make sure we only create a menubar > # if the background has no parent, aka is the primary app > window > self._createMacMenu() > > # KEA and as a further hack, I now add a Debug menu > # to the menubar. createMenu will create a menubar > # if one doesn't already exist > if self.application._showDebugMenu and self.GetParent() == None: > self.application._debugMenu = debug.DebugMenu(self.application) > self.application._debugMenu.createMenu(self) > self.application._debugMenu.bindMenuEvents(self) > > > Alrighty, lots of private methods there. But, the important part is > from Pythoncard import menu > > and > > self.menuBar = menu.MenuBar(self, aResource.menubar) > > So... I present, my <drum roll> sample cooooooooodddddddde!!!! > > http://www.rafb.net/paste/results/Cm4rdR68.html > > I've also attached a rar file of the code and the resource files. > > I really, really, hope that helps. > > > Regards, > > Liam Clarke > On Mon, 28 Mar 2005 22:51:16 -0600, bra...@om... > <bra...@om...> wrote: > > > > I haven't tried it on Mac, partially because the menus are automatically > > global on the Mac side. > > > > The wx.Yield() didn't have any effect, either. I tried a few other > variants, > > including the parent binding > > on a separate line as you suggested. Still no luck. Here is my background > > class as it currently stands: > > > > > > class MyBackground (MycroftEventTrapper, model.Background): > > def on_initialize(self, event): > > # parent is a PageBackground, grandparent is background > > "MainWindow" > > # since a PageBackground has no getParent() method, > > # instead use wx.GetTopLevelParent > > > > parent = wx.GetTopLevelParent(self.getParent()) > > print 'parent:', parent # prints > > __main__.MainWindow > > self.menuBar = parent.menuBar > > self.Raise() #bring window forward > > wx.Yield() # refresh? Doesn't make menu change > > > > > > Liam Clarke <cy...@gm...> wrote on 03/28/2005 05:41:37 PM: > > > > > Well, you could try a wx.Yield() to force redraw, but I suspect that's > > > not the answer. > > > > > > Try, and this is silly, but try it anyway, try > > > > > > parent = wx.GetTopLevelParent(self) > > > self.menuBar = parent.menubar > > > > > > Although, you should've had an Attribute Error if that wasn't working > > right. > > > > > > Try that in the meanwhile, I'll have a poke around my resource filesat > > home. > > > > > I assume that you've tested it across platforms? > > > > > > Regards, > > > > > > Liam Clarke > > > > > > On Mon, 28 Mar 2005 17:00:54 -0600, bra...@om... > > > <bra...@om...> wrote: > > > > > > > > > > > > I meant to say, > > > > > > > > self.menuBar = wx.GetTopLevelParent(self).menuBar > > > > > > > > Brad Allen/Dallas wrote on 03/28/2005 04:57:29 PM: > > > > > > > > > > > > > > Now I'm trying this within the tabs (Notebook pages): > > > > > > > > > > self.menuBar = self.wx.GetTopLevelParent(self).menuBar > > > > > > > > > > and then within the child windows: > > > > > > > > > > self.menuBar = self.getParent().menuBar > > > > > > > > > > Still not giving me the menu I want in the child windows. > > > > > > > > > > > > > > > pyt...@li... wrote on 03/28/2005 > > 04:31:37 > > > > PM: > > > > > > > > > > > > > > > > > > > > > Whoops, I must be blind. Apparently PageBackground objects have > no > > > > > > attribute getParent(). > > > > > > > > > > > > > > > > > > pyt...@li... wrote on > 03/28/2005 > > > > > 04:21:51 PM: > > > > > > > > > > > > > > > > > > > > So, I've now got a main window with a tabbed interface and a > > > > > global menubar > > > > > > > that works for all the tabs. However, I still need to spawn a > > few > > > > > > > child windows, and these > > > > > > > need to have a copy of the main menubar. I have tried binding > > the > > > > > > > menubar of the > > > > > > > parent during the background initialization of the child > > window,like > > > > so: > > > > > > > > > > > > > > class MyBackground( model.Background): > > > > > > > def on_initialize(self, event): > > > > > > > self.menuBar = self.getParent().menuBar > > > > > > > > > > > > > > This doesn't work, although it doesn't seem to generate any > > > > > > > exceptions that I can see. > > > > > > > I have tried it on child windows whose resource file contains > no > > > > > > > menubar, and I have tried > > > > > > > it on child windows whose resource file contains no menubar. > > > > > > > > > > > > > > Is there a method for refreshing the menubar? > > > > > > > > > > > > > > Thanks! > > > > > > > > > > > > > > "Kevin Altis" <al...@se...> wrote on 03/21/2005 > > 10:25:35 > > > > AM: > > > > > > > > > > > > > > > On Mar 19, 2005, at 7:27 PM, bra...@om... wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > I'm thinking I can get by with a tabbed interface for the > > > > > main window, > > > > > > > > > and go with small menu-less child windows for some of the > > > > individual > > > > > > > > > forms. For instance, an Employees tab would show a > > > > multiColumnList of > > > > > > > > > employees with search filters at the top. To edit an > > employee > > > > record, > > > > > > > > > the user doubleclicks a line and an employee edit window > > > > > pops up. This > > > > > > > > > seems like a workable approach. I guess I need to take a > > look at > > > > how > > > > > > > > > to implement the Notebook. > > > > > > > > > > > > > > > > > > > > > > > > > A tabbed interface seems like the way to go. There is > > currently no > > > > > > > > option to toggle the menubar for a window on and off in the > > > > > > > > resourceEditor. The reason I didn't do that is if someone > made > > a > > > > bunch > > > > > > > > of menus and then accidentally got rid of them they wouldbe > > pretty > > > > > > > > upset, and we have no undo feature. Instead when you create > > your > > > > > > > > background by using New under the File menu, select the > > appropriate > > > > > > > > template, for whether you want menus or not. > > > > > > > > > > > > > > > > The "main" menubar is always available to all windows. > Onthe > > main > > > > > > > > background, it is just self.menuBar so on a child window > you > > would > > > > > > > > access it as self.getParent().menuBar. > > > > > > > > > > > > > > > > When you use a single menubar and child windows, one of the > > things > > > > you > > > > > > > > have to watch out for is focus. Your main window will get > the > > > > focus. If > > > > > > > > you run with the Message Watcher you'll see the deactivate, > > > > loseFocus, > > > > > > > > activate, loseFocus, gainFocus messages fire. Depending on > > what you > > > > > > > > want to do, you'll probably need to use the findFocus() > method > > or > > > > some > > > > > > > > other method of tracking what is going on in your child > window > > and > > > > > > > > saving that information in an on_deactivate method which > you > > would > > > > then > > > > > > > > access in your main window menu item event handler. > > > > > > > > > > > > > > > > ka > > > > > > > > > -- > > > '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. > > > > > -- > '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. > > Attachment converted: Macintosh HD:testMenu.rar ( / ) (0006D0E6) > > -- '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: <bra...@om...> - 2005-03-29 18:32:32
|
I think doubleclicking the widget in resource editor should bring up the Property Editor, rather than the source file. This is the behavior in HyperCard and similar environments such as Revolution. I think shift-doubleclicking the widget might be a nice shortcut for bringing up the source code. But which source code? Usually a background is linked to a Python script containing a class MyBackground, and usually this is where an event is stored...but not always. Maybe this should be a settable property in the resource file, which defaults to undefined, and when undefined just looks for a same-named Python script as the resource file. Also, regarding the opening of source code from Resource Editor, I think it would be nice to have a global prefererence governing the choice of preferred text editor. The choice of text editors is highly idiosyncratic, and may not want to use the PythonCard Code Editor. "Brian Debuire" <deb...@ho...> Sent by: pyt...@li... 03/29/2005 11:59 AM To pyt...@li... cc Subject RE: [Pythoncard-users] time to share your PythonCard gripes and likes Hi everyone, Personally, I would love the resource editor to be as simple as it is but with user oriented features like when double clicking a button, open de source file and add on_cmdButton_mouseClick(self, event) and stuff like that. :) Hope this inspires to a powerfull editor, it would be really nice. Regards, Brian _________________________________________________________________ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/ ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Pythoncard-users mailing list Pyt...@li... https://lists.sourceforge.net/lists/listinfo/pythoncard-users |
From: Brian D. <deb...@ho...> - 2005-03-29 17:59:19
|
Hi everyone, Personally, I would love the resource editor to be as simple as it is but with user oriented features like when double clicking a button, open de source file and add on_cmdButton_mouseClick(self, event) and stuff like that. :) Hope this inspires to a powerfull editor, it would be really nice. Regards, Brian _________________________________________________________________ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/ |
From: Kevin A. <al...@ya...> - 2005-03-29 17:01:44
|
Periodically I like to ask people what is missing from PythonCard that they would like to see added. Since we're very close to a PythonCard 1.0 API release - essentially just waiting on wxPython 2.6 to be released before proceeding with cleanup and tweaks for 1.0 - now is a good time to get feedback to see if PythonCard in its current form misses the mark for what people expect or want to see from "the simple way to build Python GUI applications". Please reply with your gripes about PythonCard, whether it is something as fundamental as the strong ties to wxPython, the somewhat clunky resourceEditor, lack of sizer support, missing widgets supported by wxPython, standalone build issues, etc. If you don't mention a problem, then chances are it won't get coverage on the developers mailing list that it deserves. If you think the project focus is wrong, then say so; if you expected a better tool for building database applications, share your thoughts... If you really want something that works just like HyperCard did, now is a good time to make that clear. And yes, documentation or lack of, just like everything else, is fair game. If you've been lurking on the list, its time to speak up :) You can also reply with what you like most about PythonCard, so as we're thinking about later versions from 1.1 - 2.0, that feature doesn't get dropped. ka p.s. I'm currently traveling and using an email address that is effectively a blackhole for messages, so there is no need to reply to this address as I won't be checking it. __________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/ |
From: Brad A. <bra...@ma...> - 2005-03-29 14:34:49
|
Thanks, Liam! I'll try it when I get to work today. It looks like the key difference from what I was trying to do is to use a constructor for the menubar and then run the Show method. self.menuBar = menu.MenuBar(self, self.parent.menuBar) self.Show(1) >Hey Brad, > >You may want to copy and paste the following code. I poked around >model.py in the bowels of Background, and here's how model.Background >sets a menu - > >def _createMenus(self, aResource): > # RDS - Only create a menubar if one is defined > # in the stack's resource file. > # This is a hack, I shouldn't be accessing > # the stack resource's __dict)__ directly. > if ('menubar' in aResource.__dict__) and (aResource.menubar is >not None): > self.menuBar = menu.MenuBar(self, aResource.menubar) > elif wx.Platform == '__WXMAC__' and self.GetParent() is None: > # always create at least a File menu with Quit on the Mac > # so we automatically get the Apple menu... > # KEA 2004-03-01 > # the elif was updated to make sure we only create a menubar > # if the background has no parent, aka is the primary app window > self._createMacMenu() > > # KEA and as a further hack, I now add a Debug menu > # to the menubar. createMenu will create a menubar > # if one doesn't already exist > if self.application._showDebugMenu and self.GetParent() == None: > self.application._debugMenu = debug.DebugMenu(self.application) > self.application._debugMenu.createMenu(self) > self.application._debugMenu.bindMenuEvents(self) > > >Alrighty, lots of private methods there. But, the important part is >from Pythoncard import menu > >and > >self.menuBar = menu.MenuBar(self, aResource.menubar) > >So... I present, my <drum roll> sample cooooooooodddddddde!!!! > >http://www.rafb.net/paste/results/Cm4rdR68.html > >I've also attached a rar file of the code and the resource files. > >I really, really, hope that helps. > > >Regards, > >Liam Clarke >On Mon, 28 Mar 2005 22:51:16 -0600, bra...@om... ><bra...@om...> wrote: >> >> I haven't tried it on Mac, partially because the menus are automatically >> global on the Mac side. >> >> The wx.Yield() didn't have any effect, either. I tried a few other variants, >> including the parent binding >> on a separate line as you suggested. Still no luck. Here is my background >> class as it currently stands: >> >> >> class MyBackground (MycroftEventTrapper, model.Background): >> def on_initialize(self, event): >> # parent is a PageBackground, grandparent is background >> "MainWindow" >> # since a PageBackground has no getParent() method, >> # instead use wx.GetTopLevelParent >> >> parent = wx.GetTopLevelParent(self.getParent()) >> print 'parent:', parent # prints >> __main__.MainWindow >> self.menuBar = parent.menuBar >> self.Raise() #bring window forward >> wx.Yield() # refresh? Doesn't make menu change >> >> >> Liam Clarke <cy...@gm...> wrote on 03/28/2005 05:41:37 PM: >> >> > Well, you could try a wx.Yield() to force redraw, but I suspect that's >> > not the answer. > > > >> > Try, and this is silly, but try it anyway, try >> > >> > parent = wx.GetTopLevelParent(self) >> > self.menuBar = parent.menubar >> > >> > Although, you should've had an Attribute Error if that wasn't working >> right. >> > >> > Try that in the meanwhile, I'll have a poke around my resource filesat >> home. >> >> > I assume that you've tested it across platforms? >> > >> > Regards, >> > >> > Liam Clarke >> > >> > On Mon, 28 Mar 2005 17:00:54 -0600, bra...@om... >> > <bra...@om...> wrote: >> > > >> > > >> > > I meant to say, >> > > >> > > self.menuBar = wx.GetTopLevelParent(self).menuBar >> > > >> > > Brad Allen/Dallas wrote on 03/28/2005 04:57:29 PM: > > > > >> > > > >> > > > Now I'm trying this within the tabs (Notebook pages): >> > > > >> > > > self.menuBar = self.wx.GetTopLevelParent(self).menuBar >> > > > >> > > > and then within the child windows: >> > > > >> > > > self.menuBar = self.getParent().menuBar >> > > > >> > > > Still not giving me the menu I want in the child windows. >> > > > >> > > > >> > > > pyt...@li... wrote on 03/28/2005 >> 04:31:37 >> > > PM: >> > > >> > > > >> > > > > >> > > > > Whoops, I must be blind. Apparently PageBackground objects have no >> > > > > attribute getParent(). >> > > > > >> > > > > >> > > > > pyt...@li... wrote on 03/28/2005 >> > > > 04:21:51 PM: >> > > > > >> > > > > > >> > > > > > So, I've now got a main window with a tabbed interface and a >> > > > global menubar >> > > > > > that works for all the tabs. However, I still need to spawn a >> few >> > > > > > child windows, and these >> > > > > > need to have a copy of the main menubar. I have tried binding >> the >> > > > > > menubar of the >> > > > > > parent during the background initialization of the child >> window,like >> > > so: >> > > > > > >> > > > > > class MyBackground( model.Background): >> > > > > > def on_initialize(self, event): >> > > > > > self.menuBar = self.getParent().menuBar >> > > > > > >> > > > > > This doesn't work, although it doesn't seem to generate any >> > > > > > exceptions that I can see. >> > > > > > I have tried it on child windows whose resource file contains no >> > > > > > menubar, and I have tried >> > > > > > it on child windows whose resource file contains no menubar. >> > > > > > >> > > > > > Is there a method for refreshing the menubar? >> > > > > > >> > > > > > Thanks! >> > > > > > >> > > > > > "Kevin Altis" <al...@se...> wrote on 03/21/2005 >> 10:25:35 >> > > AM: >> > > > > > >> > > > > > > On Mar 19, 2005, at 7:27 PM, bra...@om... wrote: >> > > > > > > >> > > > > > > > >> > > > > > > > I'm thinking I can get by with a tabbed interface for the >> > > > main window, >> > > > > > > > and go with small menu-less child windows for some of the >> > > individual >> > > > > > > > forms. For instance, an Employees tab would show a >> > > multiColumnList of >> > > > > > > > employees with search filters at the top. To edit an >> employee >> > > record, >> > > > > > > > the user doubleclicks a line and an employee edit window >> > > > pops up. This >> > > > > > > > seems like a workable approach. I guess I need to take a >> look at >> > > how >> > > > > > > > to implement the Notebook. >> > > > > > > > >> > > > > > > >> > > > > > > A tabbed interface seems like the way to go. There is >> currently no >> > > > > > > option to toggle the menubar for a window on and off in the >> > > > > > > resourceEditor. The reason I didn't do that is if someone made >> a >> > > bunch >> > > > > > > of menus and then accidentally got rid of them they wouldbe >> pretty >> > > > > > > upset, and we have no undo feature. Instead when you create >> your >> > > > > > > background by using New under the File menu, select the >> appropriate >> > > > > > > template, for whether you want menus or not. >> > > > > > > >> > > > > > > The "main" menubar is always available to all windows. Onthe > > main >> > > > > > > background, it is just self.menuBar so on a child window you >> would >> > > > > > > access it as self.getParent().menuBar. >> > > > > > > >> > > > > > > When you use a single menubar and child windows, one of the >> things >> > > you >> > > > > > > have to watch out for is focus. Your main window will get the >> > > focus. If >> > > > > > > you run with the Message Watcher you'll see the deactivate, >> > > loseFocus, >> > > > > > > activate, loseFocus, gainFocus messages fire. Depending on >> what you >> > > > > > > want to do, you'll probably need to use the findFocus() method >> or >> > > some >> > > > > > > other method of tracking what is going on in your child window >> and >> > > > > > > saving that information in an on_deactivate method which you > > would >> > > then >> > > > > > > access in your main window menu item event handler. >> > > > > > > >> > > > > > > ka >> > >> > >> > -- >> > '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. >> > > >-- >'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. > >Attachment converted: Macintosh HD:testMenu.rar ( / ) (0006D0E6) |
From: Andy T. <an...@ha...> - 2005-03-29 11:51:29
|
Roan Embrechts wrote: > Hi everyone, > > I'm a new would-be user of Pythoncard, I found it while looking for a > modern day open source variant of hypercard. > > Unfortunately I have not been able to install it on my fedora core 3 > linux box. I'm not a great linux expert, but I know my way around a > little. I'm pretty sure it's wxpython that gives problems. I have > written down my installation attempts as a sort of how to install guide, > except it doesn't work. Here it is, I hope someone can help out, or this > provides at least a starting point for other fedora users... > > Roan > > ===================================================== > Friday, March 11th, 2005 > I will try to install Pythoncard on Fedora Core 3 Linux. > > The page > http://pythoncard.sourceforge.net/linux_installation.html > explains the install for mandrake and debian, maybe I learn something > for fedora too. > > First I check wether python is installed: > > $ python > Python 2.3.4 (#1, Feb 2 2005, 12:11:53) > [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> (Type Ctrl-D here to exit) > > and this is so. Good, we're almost done :-) > (if you don't have python installed, use your package manager to do so) > > My python version is 2.3.something so I download > http://prdownloads.sourceforge.net/wxpython/wxPythonGTK-py2.3-2.5.1.5-1.i386.rpm > > as advised in the linux_installation.html text. > [snip] You are right, the linux installation instructions are a bit out of date. I'll update them and update the web site. If I were you I'd stick to the binaries though, unlesss you really know your way around your system. First, the installation of wxPython. Checking the distribution page [1] there are binary RPMs of wxPython 2.5.4.1 for Python 2.3 and 2.4 on Fedora Core 2, which I presume will work with Fedora Core 3. Once these are installed check everything is working by starting your Python interpreter and typing; >>> import wx If there are no error messages then you should be O.K. I'd then follow the existing instructions on the web page to download and install the PythonCard RPM. Let us know how this goes. [1] http://www.wxpython.org/download.php#binaries Regards, Andy -- -------------------------------------------------------------------------------- From the desk of Andrew J Todd esq - http://www.halfcooked.com/ |
From: Liam C. <cy...@gm...> - 2005-03-29 08:34:16
|
Hey Brad, You may want to copy and paste the following code. I poked around model.py in the bowels of Background, and here's how model.Background sets a menu - def _createMenus(self, aResource): # RDS - Only create a menubar if one is defined # in the stack's resource file. # This is a hack, I shouldn't be accessing # the stack resource's __dict)__ directly. if ('menubar' in aResource.__dict__) and (aResource.menubar is not None): self.menuBar = menu.MenuBar(self, aResource.menubar) elif wx.Platform == '__WXMAC__' and self.GetParent() is None: # always create at least a File menu with Quit on the Mac # so we automatically get the Apple menu... # KEA 2004-03-01 # the elif was updated to make sure we only create a menubar # if the background has no parent, aka is the primary app window self._createMacMenu() # KEA and as a further hack, I now add a Debug menu # to the menubar. createMenu will create a menubar # if one doesn't already exist if self.application._showDebugMenu and self.GetParent() == None: self.application._debugMenu = debug.DebugMenu(self.application) self.application._debugMenu.createMenu(self) self.application._debugMenu.bindMenuEvents(self) Alrighty, lots of private methods there. But, the important part is from Pythoncard import menu and self.menuBar = menu.MenuBar(self, aResource.menubar) So... I present, my <drum roll> sample cooooooooodddddddde!!!! http://www.rafb.net/paste/results/Cm4rdR68.html I've also attached a rar file of the code and the resource files. I really, really, hope that helps. Regards, Liam Clarke On Mon, 28 Mar 2005 22:51:16 -0600, bra...@om... <bra...@om...> wrote: > > I haven't tried it on Mac, partially because the menus are automatically > global on the Mac side. > > The wx.Yield() didn't have any effect, either. I tried a few other variants, > including the parent binding > on a separate line as you suggested. Still no luck. Here is my background > class as it currently stands: > > > class MyBackground (MycroftEventTrapper, model.Background): > def on_initialize(self, event): > # parent is a PageBackground, grandparent is background > "MainWindow" > # since a PageBackground has no getParent() method, > # instead use wx.GetTopLevelParent > > parent = wx.GetTopLevelParent(self.getParent()) > print 'parent:', parent # prints > __main__.MainWindow > self.menuBar = parent.menuBar > self.Raise() #bring window forward > wx.Yield() # refresh? Doesn't make menu change > > > Liam Clarke <cy...@gm...> wrote on 03/28/2005 05:41:37 PM: > > > Well, you could try a wx.Yield() to force redraw, but I suspect that's > > not the answer. > > > > Try, and this is silly, but try it anyway, try > > > > parent = wx.GetTopLevelParent(self) > > self.menuBar = parent.menubar > > > > Although, you should've had an Attribute Error if that wasn't working > right. > > > > Try that in the meanwhile, I'll have a poke around my resource filesat > home. > > > I assume that you've tested it across platforms? > > > > Regards, > > > > Liam Clarke > > > > On Mon, 28 Mar 2005 17:00:54 -0600, bra...@om... > > <bra...@om...> wrote: > > > > > > > > > I meant to say, > > > > > > self.menuBar = wx.GetTopLevelParent(self).menuBar > > > > > > Brad Allen/Dallas wrote on 03/28/2005 04:57:29 PM: > > > > > > > > > > > Now I'm trying this within the tabs (Notebook pages): > > > > > > > > self.menuBar = self.wx.GetTopLevelParent(self).menuBar > > > > > > > > and then within the child windows: > > > > > > > > self.menuBar = self.getParent().menuBar > > > > > > > > Still not giving me the menu I want in the child windows. > > > > > > > > > > > > pyt...@li... wrote on 03/28/2005 > 04:31:37 > > > PM: > > > > > > > > > > > > > > > > > Whoops, I must be blind. Apparently PageBackground objects have no > > > > > attribute getParent(). > > > > > > > > > > > > > > > pyt...@li... wrote on 03/28/2005 > > > > 04:21:51 PM: > > > > > > > > > > > > > > > > > So, I've now got a main window with a tabbed interface and a > > > > global menubar > > > > > > that works for all the tabs. However, I still need to spawn a > few > > > > > > child windows, and these > > > > > > need to have a copy of the main menubar. I have tried binding > the > > > > > > menubar of the > > > > > > parent during the background initialization of the child > window,like > > > so: > > > > > > > > > > > > class MyBackground( model.Background): > > > > > > def on_initialize(self, event): > > > > > > self.menuBar = self.getParent().menuBar > > > > > > > > > > > > This doesn't work, although it doesn't seem to generate any > > > > > > exceptions that I can see. > > > > > > I have tried it on child windows whose resource file contains no > > > > > > menubar, and I have tried > > > > > > it on child windows whose resource file contains no menubar. > > > > > > > > > > > > Is there a method for refreshing the menubar? > > > > > > > > > > > > Thanks! > > > > > > > > > > > > "Kevin Altis" <al...@se...> wrote on 03/21/2005 > 10:25:35 > > > AM: > > > > > > > > > > > > > On Mar 19, 2005, at 7:27 PM, bra...@om... wrote: > > > > > > > > > > > > > > > > > > > > > > > I'm thinking I can get by with a tabbed interface for the > > > > main window, > > > > > > > > and go with small menu-less child windows for some of the > > > individual > > > > > > > > forms. For instance, an Employees tab would show a > > > multiColumnList of > > > > > > > > employees with search filters at the top. To edit an > employee > > > record, > > > > > > > > the user doubleclicks a line and an employee edit window > > > > pops up. This > > > > > > > > seems like a workable approach. I guess I need to take a > look at > > > how > > > > > > > > to implement the Notebook. > > > > > > > > > > > > > > > > > > > > > > A tabbed interface seems like the way to go. There is > currently no > > > > > > > option to toggle the menubar for a window on and off in the > > > > > > > resourceEditor. The reason I didn't do that is if someone made > a > > > bunch > > > > > > > of menus and then accidentally got rid of them they wouldbe > pretty > > > > > > > upset, and we have no undo feature. Instead when you create > your > > > > > > > background by using New under the File menu, select the > appropriate > > > > > > > template, for whether you want menus or not. > > > > > > > > > > > > > > The "main" menubar is always available to all windows. Onthe > main > > > > > > > background, it is just self.menuBar so on a child window you > would > > > > > > > access it as self.getParent().menuBar. > > > > > > > > > > > > > > When you use a single menubar and child windows, one of the > things > > > you > > > > > > > have to watch out for is focus. Your main window will get the > > > focus. If > > > > > > > you run with the Message Watcher you'll see the deactivate, > > > loseFocus, > > > > > > > activate, loseFocus, gainFocus messages fire. Depending on > what you > > > > > > > want to do, you'll probably need to use the findFocus() method > or > > > some > > > > > > > other method of tracking what is going on in your child window > and > > > > > > > saving that information in an on_deactivate method which you > would > > > then > > > > > > > access in your main window menu item event handler. > > > > > > > > > > > > > > ka > > > > > > -- > > '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. > -- '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: <bra...@om...> - 2005-03-29 04:52:03
|
I haven't tried it on Mac, partially because the menus are automatically global on the Mac side. The wx.Yield() didn't have any effect, either. I tried a few other variants, including the parent binding on a separate line as you suggested. Still no luck. Here is my background class as it currently stands: class MyBackground (MycroftEventTrapper, model.Background): def on_initialize(self, event): # parent is a PageBackground, grandparent is background "MainWindow" # since a PageBackground has no getParent() method, # instead use wx.GetTopLevelParent parent = wx.GetTopLevelParent(self.getParent()) print 'parent:', parent # prints __main__.MainWindow self.menuBar = parent.menuBar self.Raise() #bring window forward wx.Yield() # refresh? Doesn't make menu change Liam Clarke <cy...@gm...> wrote on 03/28/2005 05:41:37 PM: > Well, you could try a wx.Yield() to force redraw, but I suspect that's > not the answer. > > Try, and this is silly, but try it anyway, try > > parent = wx.GetTopLevelParent(self) > self.menuBar = parent.menubar > > Although, you should've had an Attribute Error if that wasn't working right. > > Try that in the meanwhile, I'll have a poke around my resource filesat home. > I assume that you've tested it across platforms? > > Regards, > > Liam Clarke > > On Mon, 28 Mar 2005 17:00:54 -0600, bra...@om... > <bra...@om...> wrote: > > > > > > I meant to say, > > > > self.menuBar = wx.GetTopLevelParent(self).menuBar > > > > Brad Allen/Dallas wrote on 03/28/2005 04:57:29 PM: > > > > > > > > Now I'm trying this within the tabs (Notebook pages): > > > > > > self.menuBar = self.wx.GetTopLevelParent(self).menuBar > > > > > > and then within the child windows: > > > > > > self.menuBar = self.getParent().menuBar > > > > > > Still not giving me the menu I want in the child windows. > > > > > > > > > pyt...@li... wrote on 03/28/2005 04:31:37 > > PM: > > > > > > > > > > > > > Whoops, I must be blind. Apparently PageBackground objects have no > > > > attribute getParent(). > > > > > > > > > > > > pyt...@li... wrote on 03/28/2005 > > > 04:21:51 PM: > > > > > > > > > > > > > > So, I've now got a main window with a tabbed interface and a > > > global menubar > > > > > that works for all the tabs. However, I still need to spawn a few > > > > > child windows, and these > > > > > need to have a copy of the main menubar. I have tried binding the > > > > > menubar of the > > > > > parent during the background initialization of the child window,like > > so: > > > > > > > > > > class MyBackground( model.Background): > > > > > def on_initialize(self, event): > > > > > self.menuBar = self.getParent().menuBar > > > > > > > > > > This doesn't work, although it doesn't seem to generate any > > > > > exceptions that I can see. > > > > > I have tried it on child windows whose resource file contains no > > > > > menubar, and I have tried > > > > > it on child windows whose resource file contains no menubar. > > > > > > > > > > Is there a method for refreshing the menubar? > > > > > > > > > > Thanks! > > > > > > > > > > "Kevin Altis" <al...@se...> wrote on 03/21/2005 10:25:35 > > AM: > > > > > > > > > > > On Mar 19, 2005, at 7:27 PM, bra...@om... wrote: > > > > > > > > > > > > > > > > > > > > I'm thinking I can get by with a tabbed interface for the > > > main window, > > > > > > > and go with small menu-less child windows for some of the > > individual > > > > > > > forms. For instance, an Employees tab would show a > > multiColumnList of > > > > > > > employees with search filters at the top. To edit an employee > > record, > > > > > > > the user doubleclicks a line and an employee edit window > > > pops up. This > > > > > > > seems like a workable approach. I guess I need to take a look at > > how > > > > > > > to implement the Notebook. > > > > > > > > > > > > > > > > > > > A tabbed interface seems like the way to go. There is currently no > > > > > > option to toggle the menubar for a window on and off in the > > > > > > resourceEditor. The reason I didn't do that is if someone made a > > bunch > > > > > > of menus and then accidentally got rid of them they wouldbe pretty > > > > > > upset, and we have no undo feature. Instead when you create your > > > > > > background by using New under the File menu, select the appropriate > > > > > > template, for whether you want menus or not. > > > > > > > > > > > > The "main" menubar is always available to all windows. Onthe main > > > > > > background, it is just self.menuBar so on a child window you would > > > > > > access it as self.getParent().menuBar. > > > > > > > > > > > > When you use a single menubar and child windows, one of the things > > you > > > > > > have to watch out for is focus. Your main window will get the > > focus. If > > > > > > you run with the Message Watcher you'll see the deactivate, > > loseFocus, > > > > > > activate, loseFocus, gainFocus messages fire. Depending on what you > > > > > > want to do, you'll probably need to use the findFocus() method or > > some > > > > > > other method of tracking what is going on in your child window and > > > > > > saving that information in an on_deactivate method which you would > > then > > > > > > access in your main window menu item event handler. > > > > > > > > > > > > ka > > > -- > '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. |