Python使用win32ui创建带按钮对话框的完整示例
本文详解如何利用Python的win32ui模块结合pywin.mfc创建带有按钮交互的模态对话框。通过继承dialog.Dialog类,演示如何注册按钮命令钩子(HookCommand)并处理点击事件,包括获取输入框文本及弹出消息提示。代码展示了窗口样式定义、控件布局及模态窗口运行流程,适合需要桌面GUI交互的Python开发者参考。
Python处理按钮消息的实例详解
近期在学习Python基础知识时,发现论坛中有一个非常实用的示例,特此记录分享,希望能对各位读者有所帮助。
最终运行效果如下图所示:

具体实现代码如下:
import win32ui
import win32con
from pywin.mfc import dialog
classMyDialog(dialog.Dialog):
defOnInitDialog(self):
dialog.Dialog.OnInitDialog(self)
self.HookCommand(self.OnButton1,1051)
self.HookCommand(self.OnButton2,1052)
defOnButton1(self,wParam,lParam):
win32ui.MessageBox('Button1',\
'Python',\
win32con.MB_OK)
self.EndDialog(1)
defOnButton2(self,wParam,lParam):
text = self.GetDlgItemText(1054)
win32ui.MessageBox(text,\
'Python',\
win32con.MB_OK)
self.EndDialog(1)
style =(win32con.DS_MODALFRAME|
win32con.WS_POPUP|
win32con.WS_VISIBLE|
win32con.WS_CAPTION|
win32con.WS_SYSMENU|
win32con.DS_SETFONT)
childstyle =(win32con.WS_CHILD|
win32con.WS_VISIBLE)
buttonstyle =win32con.WS_TABSTOP|childstyle
di =['Python',
(0,0,300,180),
style,
None,
(8,"MS Sans serif")]
Button1=(['Button',
'Button1',
1051,
(80,150,50,14),
buttonstyle|win32con.BS_PUSHBUTTON])
Button2=(['Button',
'Button2',
1052,
(160,150,50,14),
buttonstyle|win32con.BS_PUSHBUTTON])
stadic =(['Static',
'Python Dialog',
1053,
(130,50,60,14),
childstyle])
Edit=(['Edit',
"",
1054,
(130,80,60,14),
childstyle|win32con.ES_LEFT|
win32con.WS_BORDER|win32con.WS_TABSTOP])
init =[]
init.append(di)
init.append(Button1)
init.append(Button2)
init.append(stadic)
init.append(Edit)
mydialog =MyDialog(init)
mydialog.DoModal()
感谢阅读,希望本文能为大家提供便利,同时也感谢大家对本站的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









