国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python: 實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊tkinter窗口任意位置拖動(dòng)

這篇具有很好參考價(jià)值的文章主要介紹了Python: 實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊tkinter窗口任意位置拖動(dòng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

引子

近期在用python的tkinter庫開發(fā)一個(gè)GUI,在開發(fā)接近尾聲時(shí)候,同事發(fā)現(xiàn)一個(gè)問題:因GUI窗口較大,在他的筆記本上不能全部展示,而且只能通過點(diǎn)擊頂部狀態(tài)欄才能拖動(dòng),這樣即使鼠標(biāo)已經(jīng)在屏幕最頂部,也無法看到窗口底部的控件。

一個(gè)解決方法就是:窗口及控件可以自適應(yīng)改變。但時(shí)間緊迫,進(jìn)而采用第二個(gè)方案:鼠標(biāo)可以點(diǎn)擊tkinter窗口任意位置進(jìn)行拖動(dòng),這樣就能通過拖動(dòng),看到窗口的任意位置了!

如下例:

import tkinter as tk
'''
鼠標(biāo)點(diǎn)擊tkinter窗口任意位置進(jìn)行拖動(dòng)
'''
class uGUIHandler():
    def __init__(self):
        self.window = tk.Tk()

        self.x, self.y = 0, 0
        self.window_size = '800x700'

        # 設(shè)置隱藏窗口標(biāo)題欄和任務(wù)欄圖標(biāo)
        self.window.overrideredirect(True)
        # 設(shè)置窗口大小、位置 長x寬+距離屏幕左邊距離x+距離屏幕上邊距離y
        self.window.geometry(f"{self.window_size}+700+20")
        # 設(shè)定背景顏色
        self.window.configure(bg="LightCyan")

        # 窗口移動(dòng)事件
        self.window.bind("<B1-Motion>", self.move)
        # 單擊事件
        self.window.bind("<Button-1>", self.get_point)
        # 雙擊事件
        self.window.bind("<Double-Button-1>", self.close)

    def move(self, event):
        """窗口移動(dòng)事件"""
        new_x = (event.x - self.x) + self.window.winfo_x()
        new_y = (event.y - self.y) + self.window.winfo_y()
        s = f"{self.window_size}+{new_x}+{new_y}"
        self.window.geometry(s)

    def get_point(self, event):
        """獲取當(dāng)前窗口位置并保存"""
        self.x, self.y = event.x, event.y

    def run(self):
        self.window.mainloop()

    def close(self, event):
        self.window.destroy()


if __name__ == "__main__":
    init_window = uGUIHandler()
    init_window.run()

至此問題得以解決。從這個(gè)例子里,還得到獲取當(dāng)前鼠標(biāo)位置的方法。望讀者代碼中挖掘哦~

除此外,對(duì)tkinker窗口的鼠標(biāo)相關(guān)的事件還有:文章來源地址http://www.zghlxwxcb.cn/news/detail-502400.html

<Button-1>   鼠標(biāo)左鍵
<Button-2>   鼠標(biāo)中間鍵(滾輪)
<Button-3>   鼠標(biāo)右鍵
<Double-Button-1>   雙擊鼠標(biāo)左鍵
<Double-Button-3>   雙擊鼠標(biāo)右鍵
<Triple-Button-1>   三擊鼠標(biāo)左鍵
<Triple-Button-3>   三擊鼠標(biāo)右鍵
<B1-Motion>   鼠標(biāo)左鍵滑動(dòng)
<B2-Motion>   鼠標(biāo)滾輪移動(dòng)
<B3-Motion>   鼠標(biāo)右鍵滑動(dòng)

到了這里,關(guān)于Python: 實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊tkinter窗口任意位置拖動(dòng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Qt】Qt無邊框窗口(鼠標(biāo)點(diǎn)擊自定義標(biāo)題欄)可拖動(dòng)

    【Qt】Qt無邊框窗口(鼠標(biāo)點(diǎn)擊自定義標(biāo)題欄)可拖動(dòng)

    隱藏掉標(biāo)題欄后,默認(rèn)情況下窗口無法被鼠標(biāo)拖動(dòng)的,需要自己處理鼠標(biāo)事件,移動(dòng)窗口達(dá)到拖動(dòng)效果,但是又不想要鼠標(biāo)點(diǎn)擊整個(gè)窗口都可以拖動(dòng),只需要鼠標(biāo)點(diǎn)擊自定義的標(biāo)題欄時(shí)可拖動(dòng) 具體步驟如下: 類外初始化 通過鼠標(biāo)點(diǎn)擊事件,判斷鼠標(biāo)是否在標(biāo)題欄,如果是,

    2024年02月12日
    瀏覽(21)
  • 實(shí)現(xiàn)Qwidget窗口填滿整個(gè)主窗口,并跟隨鼠標(biāo)的拖動(dòng)自動(dòng)縮放

    實(shí)現(xiàn)Qwidget窗口填滿整個(gè)主窗口,并跟隨鼠標(biāo)的拖動(dòng)自動(dòng)縮放

    實(shí)現(xiàn)Qwidget窗口填滿整個(gè)主窗口,并跟隨鼠標(biāo)的拖動(dòng)自動(dòng)縮放 新建一個(gè)窗口,我想在這個(gè)窗口上放一個(gè)QWidget,并且這個(gè)QWidget能夠布滿整個(gè)窗口,還可以隨著隨鼠標(biāo)的拖動(dòng)自動(dòng)縮放 1、首先給大家介紹一個(gè)好用的組件庫:qt-material-widgets (1)開源地址(基于QWidgets) 基于Qt Qui

    2024年02月10日
    瀏覽(23)
  • C# winform中無標(biāo)題欄窗口如何實(shí)現(xiàn)鼠標(biāo)拖動(dòng)?

    在C#中,可以通過重寫窗體的鼠標(biāo)事件來實(shí)現(xiàn)無標(biāo)題欄窗體的拖動(dòng)。 具體步驟如下: 禁用窗體的默認(rèn)標(biāo)題欄:在窗體屬性中設(shè)置FormBorderStyle為None。 重寫鼠標(biāo)事件:在窗體類中重寫MouseDown、MouseMove和MouseUp事件。 定義變量存儲(chǔ)鼠標(biāo)點(diǎn)擊時(shí)的坐標(biāo)。 在MouseDown事件中記錄鼠標(biāo)的位

    2024年02月02日
    瀏覽(20)
  • Python模擬鼠標(biāo)點(diǎn)擊與實(shí)時(shí)獲取鼠標(biāo)位置

    鼠標(biāo)點(diǎn)擊會(huì)用到pymouse庫。 在cmd中運(yùn)行,使用鏡像下載 編譯器在運(yùn)行時(shí)可能會(huì)報(bào)錯(cuò),會(huì)出現(xiàn)No module named win32api問題,這是由于Python是沒有自帶訪問windows系統(tǒng)API的庫的,需要下載。 在cmd中運(yùn)行,使用鏡像下載pywin32。 time.sleep(num),num值可以自己進(jìn)行設(shè)置,單位為秒。 程序運(yùn)行

    2024年02月11日
    瀏覽(32)
  • wps演示時(shí)圖片任意位置拖動(dòng)

    wps演示時(shí)圖片任意位置拖動(dòng)

    宏插件地址: 鏈接: https://pan.baidu.com/s/1bUantSdIJxR_3nMAjT7kXw?pwd=6666 提取碼: 6666 wps11.1版本: 鏈接: https://pan.baidu.com/s/1ieHj6BHAk3LxhTIFK7zg2w?pwd=6666 提取碼: 6666 文件-幫助-關(guān)于wps 開發(fā)工具-圖像。如果沒有,則需要安裝宏插件(使用1中的鏈接即可) 開發(fā)工具-宏安全性,選擇低,才能運(yùn)

    2024年02月07日
    瀏覽(19)
  • 使用python向窗口發(fā)送鼠標(biāo)點(diǎn)擊命令

    今天遇到一個(gè)問題。公司讓用電腦在網(wǎng)頁上看個(gè)視頻。網(wǎng)頁有個(gè)判斷:一段時(shí)間沒有鼠標(biāo)活動(dòng),視頻就會(huì)暫停。于是就想,能否隔一段時(shí)間就模擬鼠標(biāo)點(diǎn)擊一下視頻暫停,再點(diǎn)一下繼續(xù)播放。省得它自己停止播放。這樣我就可以讓網(wǎng)頁窗口在后臺(tái),我去干別的。 研究了一下,

    2024年02月12日
    瀏覽(20)
  • QT`實(shí)現(xiàn)鼠標(biāo)超時(shí)未點(diǎn)擊,窗口自動(dòng)關(guān)閉

    QT 實(shí)現(xiàn)鼠標(biāo)超時(shí)未點(diǎn)擊,窗口自動(dòng)關(guān)閉 前言 有的時(shí)候我們需要某些窗口實(shí)現(xiàn)超時(shí)自動(dòng)關(guān)閉,但是Qt窗口一般是多部件堆疊而成,如果常規(guī)處理,對(duì)每一個(gè)部件進(jìn)行鼠標(biāo)點(diǎn)擊事件處理顯然不太合理,我個(gè)人參考了網(wǎng)上前輩的處理方法,通過直接重新實(shí)現(xiàn) QApplication::notify 函數(shù)來

    2024年02月10日
    瀏覽(24)
  • uniapp - 實(shí)現(xiàn)可拖動(dòng)懸浮按鈕功能,支持手指拖曳放到頁面任意位置(詳細(xì)示例源碼及注釋,復(fù)制粘貼快速植入)全端兼容H5/app/小程序!

    uniapp - 實(shí)現(xiàn)可拖動(dòng)懸浮按鈕功能,支持手指拖曳放到頁面任意位置(詳細(xì)示例源碼及注釋,復(fù)制粘貼快速植入)全端兼容H5/app/小程序!

    百度搜的代碼都太難用了而且有bug。。。 本文詳細(xì)講解在uniapp中實(shí)現(xiàn)一個(gè)可拖動(dòng)的懸浮按鈕,并且兼容在 H5/app/小程序中完美運(yùn)行, 你可以直接復(fù)制源碼,復(fù)制到你的項(xiàng)目中,附帶 全局組件注冊(cè) 的方法(要不每個(gè)頁面都需要引一次), 如下圖所示,你自己修改樣式就行了,

    2023年04月08日
    瀏覽(132)
  • selenium+python:點(diǎn)擊元素、alert彈框、鼠標(biāo)操作(左鍵點(diǎn)擊、右鍵點(diǎn)擊、雙擊、鼠標(biāo)懸浮)、下拉選項(xiàng)框、窗口切換等操作的處

    selenium+python:點(diǎn)擊元素、alert彈框、鼠標(biāo)操作(左鍵點(diǎn)擊、右鍵點(diǎn)擊、雙擊、鼠標(biāo)懸?。?、下拉選項(xiàng)框、窗口切換等操作的處

    driver=webdriver.Chrome() driver.maximize_window() driver.get(\\\"https://www.baidu.com/\\\") 在進(jìn)行頁面操作時(shí),需要用鼠標(biāo)進(jìn)行左鍵點(diǎn)擊、右鍵點(diǎn)擊、雙擊、鼠標(biāo)懸?。ū热缡髽?biāo)移到某個(gè)位置就會(huì)出現(xiàn)一些元素)、鼠標(biāo)拖動(dòng)等操作,這時(shí)需要導(dǎo)入ActionChains模塊 perform() 執(zhí)行所有ActionChains 中存儲(chǔ)的行為

    2024年02月05日
    瀏覽(22)
  • 鼠標(biāo)拖動(dòng)窗口延遲

    鼠標(biāo)拖動(dòng)窗口延遲

    本人使用鼠標(biāo)為羅技鼠標(biāo),其他鼠標(biāo)也可以參考操作 困擾本人很長時(shí)間的問題,在大部分窗口也不會(huì)出現(xiàn)此問題因此也沒強(qiáng)烈影響到我,但是每次打開到會(huì)出現(xiàn)延遲的窗口時(shí)還是會(huì)令我討厭 在經(jīng)過我查詢了很多和我類似的問題才最終解決,所以我來分享一下我的解決方法 在

    2024年02月10日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包