Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk melaksanakan antara muka GUI yang mengikuti pergerakan tetingkap WeChat dalam masa nyata dalam Python

Bagaimana untuk melaksanakan antara muka GUI yang mengikuti pergerakan tetingkap WeChat dalam masa nyata dalam Python

WBOY
WBOYke hadapan
2023-05-14 19:16:041162semak imbas

Menulis antara muka GUI yang ringkas dalam Python adalah sangat mudah, dan Python mempunyai banyak perpustakaan ini boleh memudahkan kami mengendalikan sistem Windows Dengan antara muka, kami boleh membuat banyak alat yang indah. Kes artikel ini ialah contoh mudah, menggunakan Python untuk mencipta tetingkap yang memantau status tetingkap klien versi WeChat PC dalam masa nyata dan mengikut sebelah kanan versi PC WeChat dalam masa nyata.

Kod

import tkinter as tk
import win32gui
import win32con

class FollowWeChatWindow(tk.Tk):
    def __init__(self):
        super().__init__()

        # 隐藏窗口边框和标题栏
        self.overrideredirect(True)
        self.title("跟随微信的窗口")

        # 窗口置顶
        self.wm_attributes('-topmost', True)

        # 创建一个标签,用于显示窗口位置信息
        self.label = tk.Label(self, text='')
        self.label.pack()

        # 启动定时器
        self.after(50, self.update_window)

    def update_window(self):
        # 获取微信窗口句柄和位置
        wechat_hwnd = win32gui.FindWindow('WeChatMainWndForPC', None)
        if wechat_hwnd:
            wechat_rect = win32gui.GetWindowRect(wechat_hwnd)

            # print(win32gui.GetWindowText(win32gui.GetForegroundWindow()))
            # 获取当前鼠标点击的窗口的句柄的标题
            getClickHownTitle = win32gui.GetWindowText(win32gui.GetForegroundWindow())

            # 判断微信窗口状态,显示或隐藏本窗口
            if win32gui.GetForegroundWindow() == wechat_hwnd:
                # 当前点击的句柄=微信的句柄
                self.wm_attributes('-alpha', 1.0)
            elif getClickHownTitle == '跟随微信的窗口':
                # 当前点击的窗口的标题=跟随微信的窗口
                self.wm_attributes('-alpha', 1.0)
            else:
                # 不满足以上两个条件的其中一条,都得隐藏窗口
                self.wm_attributes('-alpha', 0.0)

            print(getClickHownTitle)

            # 获取微信窗口高度
            WeChat_Height = wechat_rect[3] - wechat_rect[1]

            # 更新本窗口位置
            self.geometry('200x%d+%d+%d' % (WeChat_Height, wechat_rect[2], wechat_rect[1]))

            # 更新标签文本
            self.label.configure(text=win32gui.GetForegroundWindow())

        else:
            # 微信窗口未找到,隐藏本窗口
            self.wm_attributes('-alpha', 0.0)

        # 继续定时器
        self.after(50, self.update_window)

if __name__ == '__main__':
    app = FollowWeChatWindow()
    app.mainloop()

Penjelasan kod

Dalam contoh ini, perpustakaan antara muka tkinter yang disertakan dengan Python digunakan untuk melaksanakan tetingkap tanpa sempadan mudah dengan lebar tetingkap 200 dan ketinggian Selaras dengan tetingkap WeChat. Dapatkan kedudukan dan saiz tetingkap WeChat dalam masa nyata dengan mendapatkan pemegang klien WeChat, mulakan pemasa untuk mendapatkan status paparan WeChat dalam masa nyata dan kemas kini status setiap 50ms untuk mencapai tujuan mengikuti.

Demonstrasi animasi

Bagaimana untuk melaksanakan antara muka GUI yang mengikuti pergerakan tetingkap WeChat dalam masa nyata dalam Python

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan antara muka GUI yang mengikuti pergerakan tetingkap WeChat dalam masa nyata dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam