亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2023年08月15日 10:22:26   作者:點墨  
這篇文章主要為大家詳細介紹了如何利用python實現(xiàn)控制Qt程序,從而進行文本輸入,按鈕點擊等組件控制,感興趣的小伙伴可以跟隨小編一起學習一下

使用python控制Qt程序,進行文本輸入,按鈕點擊等組件控制

方法一

思路:使用pywin32獲取窗口句柄,獲取窗口位置,根據(jù)組件相對定位與窗口定位得到組件絕對定位,模擬鼠標按下,鍵盤輸入即可

安裝

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開發(fā)的基于微軟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程序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python 實現(xiàn)關聯(lián)規(guī)則算法Apriori的示例

    python 實現(xiàn)關聯(lián)規(guī)則算法Apriori的示例

    這篇文章主要介紹了python 實現(xiàn)關聯(lián)規(guī)則算法Apriori的示例,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-09-09
  • pygame可視化幸運大轉盤實現(xiàn)

    pygame可視化幸運大轉盤實現(xiàn)

    這篇文章主要介紹了pygame可視化幸運大轉盤實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Python 類的特殊成員解析

    Python 類的特殊成員解析

    這篇文章主要介紹了Python 類的特殊成員介紹,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • Python實現(xiàn)調用jar或執(zhí)行java代碼的方法詳解

    Python實現(xiàn)調用jar或執(zhí)行java代碼的方法詳解

    這篇文章主要介紹了Python實現(xiàn)調用jar或執(zhí)行java代碼的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python高級過濾器之filter函數(shù)詳解

    Python高級過濾器之filter函數(shù)詳解

    在Python中,filter()是一個非常有用的內置函數(shù),它能夠根據(jù)指定的函數(shù)來篩選出可迭代對象中滿足條件的元素,本文將從入門到精通,全面介紹filter()函數(shù)的用法和相關知識點
    2023-08-08
  • Python部署web開發(fā)程序的幾種方法

    Python部署web開發(fā)程序的幾種方法

    本篇文章主要介紹了Python部署web開發(fā)程序的幾種方法,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-05-05
  • 關于numpy版本兼容問題解決方案

    關于numpy版本兼容問題解決方案

    這篇文章主要給大家介紹了關于numpy版本兼容問題解決方案的相關資料,文中通過圖文介紹的非常詳細,對大家學習或者使用numpy具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-10-10
  • python神經(jīng)網(wǎng)絡Keras常用學習率衰減匯總

    python神經(jīng)網(wǎng)絡Keras常用學習率衰減匯總

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡Keras常用學習率衰減匯總,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python計算任意多邊形間的重疊面積的示例代碼

    Python計算任意多邊形間的重疊面積的示例代碼

    最近有個作業(yè),給定的數(shù)據(jù)為多邊形的各個頂點,為N*2的矩陣,N 為多邊形的頂點個數(shù),計算任意兩個多邊形重疊面積計算,本文就來詳細的介紹一下
    2021-08-08
  • 教你用Python寫一個京東自動下單搶購腳本

    教你用Python寫一個京東自動下單搶購腳本

    很多朋友都有網(wǎng)購搶購限量商品的經(jīng)歷,有時候蹲點搶怎么也搶不到,今天小編帶你們學習怎么用Python寫一個京東自動下單搶購腳本,以后再也不用拼手速拼網(wǎng)速啦,快來一起看看吧
    2023-03-03

最新評論