Python使用win32ui创建带按钮对话框的完整示例

听雨眠
听雨眠
发布时间:2026-10-13| 1人浏览过
原创

本文详解如何利用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()

感谢阅读,希望本文能为大家提供便利,同时也感谢大家对本站的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。