Python and Windows.Forms
Shane
s.brennan at cox.net
Thu May 13 20:07:06 EDT 2004
Thanks Larry, that was what I was hoping to hear. And thanks for the
book suggestion; I'll be sure to look it up!
Shane Brennan
Larry Bates wrote:
> Shane,
>
> You can access all the Windows common dialogs (forms?)
> Python by using Win32 extensions. Specifically using
> pywin.mfc dialog and win32ui modules. Here is an example
> that I "hacked" from Demos directory. If this is
> something you want to study more see Mark Hammond's
> excellent Python Programming on Win32 book.
>
> HTH,
> Larry Bates
> Syscon, Inc.
>
> #
> # Progress bar control example
> #
> # PyCProgressCtrl encapsulates the MFC CProgressCtrl class. To use it,
> # you:
> #
> # - Create the control with win32ui.CreateProgressCtrl()
> # - Create the control window with PyCProgressCtrl.CreateWindow()
> # - Initialize the range if you want it to be other than (0, 100) using
> # PyCProgressCtrl.SetRange()
> # - Either:
> # - Set the step size with PyCProgressCtrl.SetStep(), and
> # - Increment using PyCProgressCtrl.StepIt()
> # or:
> # - Set the amount completed using PyCProgressCtrl.SetPos()
> #
> # Example and progress bar code courtesy of KDL Technologies, Ltd., Hong
> Kong SAR, China.
> #
>
> from pywin.mfc import dialog
> import win32ui
> import win32con
> import time
>
> def MakeDlgTemplate():
> style = (win32con.DS_MODALFRAME |
> win32con.WS_POPUP |
> win32con.WS_VISIBLE |
> win32con.WS_CAPTION |
> win32con.WS_SYSMENU |
> win32con.DS_SETFONT)
> cs = (win32con.WS_CHILD |
> win32con.WS_VISIBLE)
>
> w = 215
> h = 36
>
> dlg = [["Progress bar",
> (0, 0, w, h),
> style,
> None,
> (8, "MS Sans Serif")],
> ]
> return dlg
>
> class TestDialog(dialog.Dialog):
> def OnInitDialog(self):
> rc = dialog.Dialog.OnInitDialog(self)
> self.pbar = win32ui.CreateProgressCtrl()
> self.pbar.CreateWindow (win32con.WS_CHILD |
> win32con.WS_VISIBLE,
> (10, 10, 310, 24),
> self, 1001)
> return rc
>
> def demo():
> d = TestDialog (MakeDlgTemplate())
> d.CreateWindow ()
> for i in xrange(100):
> d.pbar.SetPos(i)
> time.sleep(0.1)
>
> d.OnCancel()
>
> if __name__=='__main__':
> demo()
>
> # $Header: /home/cvsroot/PyWin32/Pythonwin/pywin/Demos/progressbar.py,v 1.1
> 1999/09/01 23:33:35 mhammond Exp $
>
> "Shane" <s.brennan at cox.net> wrote in message
> news:sTAoc.67180$sK3.3272 at nwrddc03.gnilink.net...
>
>>Hey folks,
>>
>>I'm new to Python and programming in general and I'm having a blast. I
>>was curious if it was possible to use Windows.Forms; I'm interesting in
>>porting a C++ program a friend wrote for me to Python and would like to
>>use a similar GUI (its fairly simple). I've noticed ActiveState has a
>>.NET plugin for Python...
>>
>>http://www.activestate.com/Products/Visual_Python/?_x=1
>>
>>...but I'm not sure that is what I am looking for and I'm stuck with
>>Borland C# Builder Personal Edition anyway for financial reasons.
>>
>>One thing that threw me for a loop was that when I used ActivePython
>>(ActiveStates Python IDE, I like it so far) to run a script I wrote, it
>>gives me a Windows.Forms input box when I call raw_input as opposed to
>>the regular console input message you get in the basic interactive
>>window that comes with a standalone Pythin installation. What's going on
>>there? Can I harness that a little more?
>>
>>Shane Brennan
>
>
>
More information about the Python-list
mailing list