47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
|
# dlgappdemo - a demo of a dialog application.
|
||
|
# This is a demonstration of both a custom "application" module,
|
||
|
# and a Python program in a dialog box.
|
||
|
#
|
||
|
# NOTE: You CAN NOT import this module from either PythonWin or Python.
|
||
|
# This module must be specified on the commandline to PythonWin only.
|
||
|
# eg, PythonWin /app dlgappdemo.py
|
||
|
|
||
|
from pywin.framework import dlgappcore, app
|
||
|
import win32ui
|
||
|
import sys
|
||
|
|
||
|
class TestDialogApp(dlgappcore.DialogApp):
|
||
|
def CreateDialog(self):
|
||
|
return TestAppDialog()
|
||
|
|
||
|
|
||
|
class TestAppDialog(dlgappcore.AppDialog):
|
||
|
def __init__(self):
|
||
|
self.edit = None
|
||
|
dlgappcore.AppDialog.__init__(self, win32ui.IDD_LARGE_EDIT)
|
||
|
def OnInitDialog(self):
|
||
|
self.SetWindowText('Test dialog application')
|
||
|
self.edit = self.GetDlgItem(win32ui.IDC_EDIT1)
|
||
|
print("Hello from Python")
|
||
|
print("args are:", end=' ')
|
||
|
for arg in sys.argv:
|
||
|
print(arg)
|
||
|
return 1
|
||
|
|
||
|
def PreDoModal(self):
|
||
|
sys.stdout = sys.stderr = self
|
||
|
|
||
|
def write(self, str):
|
||
|
if self.edit:
|
||
|
self.edit.SetSel(-2)
|
||
|
# translate \n to \n\r
|
||
|
self.edit.ReplaceSel(str.replace('\n','\r\n'))
|
||
|
else:
|
||
|
win32ui.OutputDebug("dlgapp - no edit control! >>\n%s\n<<\n" % str )
|
||
|
|
||
|
app.AppBuilder = TestDialogApp
|
||
|
|
||
|
if __name__=='__main__':
|
||
|
import demoutils
|
||
|
demoutils.NeedApp()
|