python + win32api,win32gui,win32con 写 exe 窗口的时候,怎么创建按钮呢?
问题描述:
自己用 python + win32api 想写 exe 脚本文件,但是按钮都不会创建
python + win32api,win32gui,win32con 写 exe 窗口的时候,怎么创建按钮呢?
网上抄来的代码,如果用 tkinter 的话,不是用不到 win32api, win32gui, win32con 了吗?小白上来请教各位大佬
import win32gui
import win32api
from win32con import *
def WndProc(hwnd, msg, wParam, lParam): # wParam 值为鼠标按键的信息,而 lParam 则储存鼠标的坐标if msg == WM_PAINT:hdc, ps = win32gui.BeginPaint(hwnd)rect = win32gui.GetClientRect(hwnd)win32gui.DrawText(hdc, '这里是1', len('这里是1'), rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER)win32gui.EndPaint(hwnd, ps)if msg == WM_DESTROY:win32gui.PostQuitMessage(0)return win32gui.DefWindowProc(hwnd, msg, wParam, lParam) # 调用DefWindowProc函数时使用窗口过程接收的相同参数。
wc = win32gui.WNDCLASS()
wc.hbrBackground = COLOR_BTNFACE + 1 # 设置背景颜色
wc.hCursor = win32gui.LoadCursor(0, IDI_APPLICATION) #鼠标位置
wc.lpszClassName = "my_window" # 样式名称
wc.lpfnWndProc = WndProc
reg = win32gui.RegisterClass(wc) # 注册窗口类
# CreateWindow(className, windowTitle, style, x, y, width, height, parent, menu, hinstance【当前句柄,应用程序实例】, reserved)
# hwnd = win32gui.CreateWindow(reg, '来了', WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, 0, None)
hwnd = win32gui.CreateWindow(reg, '来了', WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, 0, 0, 0, None)
win32gui.ShowWindow(hwnd, SW_SHOWNORMAL) # 显示主窗口 【 窗口不会自动显示主窗口 ShowWindow(窗口句柄, 标致【 SW_开头的参数 】) 】
win32gui.UpdateWindow(hwnd) # ShowWind 只显示窗口, 如果窗口被遮,切换窗口,移动窗口的时候判断需不需要重绘
win32gui.PumpMessages()
# hwnd 窗口句柄 handle window
问题解决:
自己用 python + pyqt5 解决了入门问题。创建了第一个按钮和其事件
演示效果:
代码:
# -*- coding: utf-8 -*-import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindowclass Ui_MainWindow(QMainWindow):def setupUi(self, MainWindow):MainWindow.setObjectName("myBtnWindow") # 设置对外的名字MainWindow.setWindowTitle("按钮展示") # 对内的名字MainWindow.resize(600, 480) # 窗口首次展示大小self.printBtn = QtWidgets.QPushButton(MainWindow) # 把需要添加的放在自己的窗口里面self.printBtn.setGeometry(QtCore.QRect(10, 10, 60, 40))self.printBtn.setText("打印") # 设置自己的按钮名称self.printBtn.clicked.connect(self.showBtnWords) # 设置链接函数QtCore.QMetaObject.connectSlotsByName(self) #绑定到相对应的槽上def showBtnWords(self):sender = self.sender()print(sender.text() + ':按钮上的字')if __name__ == "__main__":app = QtWidgets.QApplication(sys.argv)widget = QtWidgets.QWidget()window = Ui_MainWindow()window.setupUi(widget)widget.show()sys.exit(app.exec())
python + win32api,win32gui,win32con 写 exe 窗口的时候,怎么创建按钮呢?相关推荐
- python控制windows窗口、并输入数据_python win32api win32gui win32con 窗口句柄 发送消息 常用方法 键盘输入...
import win32gui import win32con import win32api # 从顶层窗口向下搜索主窗口,无法搜索子窗口 # FindWindow(lpClassName=None ...
- python给窗口发送消息_python win32api win32gui win32con 窗口句柄 发送消息 常用方法 键盘输入...
import win32gui import win32con import win32api # 从顶层窗口向下搜索主窗口,无法搜索子窗口 # FindWindow(lpClassName=None ...
- win32gui, win32con, win32api 安装失败
win32gui, win32con, win32api安装失败,可以安装pypiwin32,因为pypiwin32包含了n32gui, win32con, win32api三个模块. pip ins ...
- python winapi_python---win32gui、win32con、win32api:winAPI操作
importsysfrom PyQt5.QtWidgets importQApplication, QWidgetfrom lianxi importUi_Formfrom PyQt5.QtCore ...
- python多媒体应用:使用python和win32gui一步步教你按需截图和图片文字识别
前方高能预警,建议分多次阅读. 这里将会分成三大模块进行介绍. 1.如何使用百度AI识别的API接口进行图片文字识别: 2.如何通过使用python和win32gui进行截图: 3.如何通过使用pyt ...
- python启动远端 exe_python打包exe开机自动启动的实例(windows)
一.背景 简单的写个.exe程序,没必要去学习mfc.c++等,可以学习python.python可以轻易的调用windows的api,轻松的实现你想干的事.下面就是实现打包的exe文件开机自动运行. ...
- python win32api键盘_pythonwin32api键盘输入教程
importwin32guiimportwin32conimportwin32api#从顶层窗口向下搜索主窗口,无法搜索子窗口#FindWindow(lpClassName=None, lpWindo ...
- 初学Python第三天写的一个PC版模拟微信自动给好友发送消息
本程序能做什么: 在PC版的微信界面,模拟鼠标键盘动作,随机对好友列表里的某些好友发送文本消息和图片 (因为本人以前没有WINDOW UI的编程经验,所以这几天对WIN32UI接口基本是边学边搜边用, ...
- win32gui激活、关闭窗口方法
win32gui模块可以控制窗口的属性,如果想激活某个窗口,一般先获取这个窗口的名字,如下代码可以打印出目前系统开启的所以程序窗口及名称: import win32gui,win32com.clien ...
最新文章
- 【LibreOJ】#541. 「LibreOJ NOIP Round #1」七曜圣贤
- Maven配置将war包部署到Tomcat(tomcat7-maven-plugin)
- pytorch转caffe
- 腾讯offer是什么样子_月薪35K:2020腾讯Java后端开发详细面试流程
- 静态与非静态(转改)
- 每日一题(40)—— 字符串常量
- [转帖]升级 Ubuntu,解决登录时提示有软件包可以更新的问题
- decimal转换为int_“System.InvalidCastException 指定的转换无效”问题的反思和总结
- 【雷达通信】基于matlab GUI多算法雷达一维恒虚警检测CFAR【含Matlab源码 874期】
- oc基础-oc中之集合NSSet,NSMutableSet
- unity旧动画系统之animationClip/animationEvent/animationCurve
- 《数据结构》实验二 线性表的实验
- Ubuntu压缩文件的分卷压缩和解压
- 试用期三个月,快转正的时候,领导说,“你的表现没有达到预期”
- 微信小程序实现封装处理
- MySQL数据库基本命令
- JAVA是解释型语言还是编译型语言
- UG\NX二次开发 获取曲线上某个位置的点坐标、切线矢量、主法线矢量、副法线矢量 UF_MODL_ask_curve_props
- MySQL的查询语言合集
- Centos-openstack-Rocky-ironic部署