利用python控制Qt程序的示例详解

 更新时间:2023年08月15日 10:22:26   作者:点墨  
这篇文章主要为大家详细介绍了如何利用python实现控制Qt程序,从而进行文本输入,按钮点击等组件控制,感兴趣的小伙伴可以跟随小编一起学习一下

使用python控制Qt程序,进行文本输入,按钮点击等组件控制

方法一

思路:使用pywin32获取窗口句柄,获取窗口位置,根据组件相对定位与窗口定位得到组件绝对定位,模拟鼠标按下,键盘输入即可

安装

pip install pywin32

源码

import pyautogui
import win32api
import win32gui
import pyperclip
def findWindow(title):
    windows = pyautogui.getWindowsWithTitle(title)
    if(len(windows) == 0):
        raise Exception("未找到窗口")
    return windows[0]
def PushButtonClick(hwd,relatePos):
    # 模拟按钮点击
    curPosi = win32api.GetCursorPos()
    hwdPosi = win32gui.GetWindowRect(hwd)
    win32api.SetCursorPos([hwdPosi[0]+relatePos[0],hwdPosi[1]+relatePos[1]])
    pyautogui.click()
    pyautogui.sleep(0.3)
    win32api.SetCursorPos(curPosi)
def LineEditInput(hwd,relatePos,value):
    # 模拟输入框输入
    curPosi = win32api.GetCursorPos()
    hwdPosi = win32gui.GetWindowRect(hwd)
    win32api.SetCursorPos([hwdPosi[0] + relatePos[0], hwdPosi[1] + relatePos[1]])
    pyautogui.click()
    pyperclip.copy(value)
    pyautogui.hotkey('ctrl','v')
    pyautogui.sleep(0.3)
    win32api.SetCursorPos(curPosi)
def main():
    hwd = win32gui.FindWindow(None,"Test")
    win32gui.SetForegroundWindow(hwd)
    LineEditInput(hwd, [140, 70], "测试")
    PushButtonClick(hwd,[300,70])
main()

效果图

方法二

思路:使用uiautomation进行组件的控制

uiautomation是yinkaisheng开发的基于微软UIAutomation API的一个python模块,支持自动化Win32,MFC,WPF,Modern UI(Metro UI), Qt, IE, Firefox等UI框架

安装

pip install uiautomation

源码

import uiautomation
def getAllControls(control,map):
    if len(control.GetChildren()) != 0:
        for child in control.GetChildren():
            getAllControls(child,map)
    if map.get(control.ControlTypeName) != None:
        map[control.ControlTypeName].append(control)
    else:
        map[control.ControlTypeName] = []
        map[control.ControlTypeName].append(control)
def main():
    control = uiautomation.WindowControl(searchDepth=1,Name="Test")
    controlList = {}
    getAllControls(control,controlList)
    edit = controlList.get("EditControl")[0]
    edit.SendKeys("测试")
    btn = controlList.get("ButtonControl")[3]
    btn.Click()
main()

效果图

到此这篇关于利用python控制Qt程序的示例详解的文章就介绍到这了,更多相关python控制Qt程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 三分钟内解决cfgrib的安装问题

    三分钟内解决cfgrib的安装问题

    这篇文章主要介绍了三分钟内解决cfgrib的安装问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python实现将内容写入文件的五种方法总结

    Python实现将内容写入文件的五种方法总结

    本篇带你详细看一下python将内容写入文件的方法以及细节,主要包括write()方法、writelines() 方法、print() 函数、使用 csv 模块、使用 json 模块,需要的可以参考一下
    2023-04-04
  • python测试驱动开发实例

    python测试驱动开发实例

    这篇文章主要介绍了python测试驱动开发实例,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • python中字符串最常用的十三个处理操作记录

    python中字符串最常用的十三个处理操作记录

    这篇文章主要给大家介绍了关于python中字符串最常用的13个处理操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python读取图片的几种方式及图像宽和高的存储顺序

    python读取图片的几种方式及图像宽和高的存储顺序

    这篇文章主要介绍了python读取图片的几种方式及图像宽和高的存储顺序,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 利用Python绘制一个可爱的米老鼠

    利用Python绘制一个可爱的米老鼠

    turtle库是一个点线面的简单图像库,在Python2.6之后被引入进来,能够完成一些比较简单的几何图像可视化。本文将利用turtle绘制一个可爱的米老鼠,感兴趣的可以试一试
    2022-03-03
  • Python编程快速上手——选择性拷贝操作案例分析

    Python编程快速上手——选择性拷贝操作案例分析

    这篇文章主要介绍了Python选择性拷贝操作,结合具体实例形式分析了Python文件遍历、查找、复制拷贝等相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • python中Scikit-learn库的高级特性和实践分享

    python中Scikit-learn库的高级特性和实践分享

    Scikit-learn是一个广受欢迎的Python库,它用于解决许多机器学习的问题,在本篇文章中,我们将进一步探索Scikit-learn的高级特性和最佳实践,需要的朋友可以参考下
    2023-07-07
  • 在Python操作时间和日期之asctime()方法的使用

    在Python操作时间和日期之asctime()方法的使用

    这篇文章主要介绍了在Python操作时间和日期之asctime()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • PyTorch中torch.utils.data.Dataset的介绍与实战

    PyTorch中torch.utils.data.Dataset的介绍与实战

    PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序,下面这篇文章主要给大家介绍了关于PyTorch中torch.utils.data.Dataset的介绍与实战,需要的朋友可以参考下
    2022-06-06

最新评论