python利用PyQt5設計鼠標顯示形狀
PyQt5鼠標相關操作
不知道大家有沒有發(fā)現(xiàn),我們在網(wǎng)頁移動鼠標時,不同的網(wǎng)頁會有不同的鼠標移動特效。通過移動鼠標,會形成類似蜘蛛網(wǎng)等等的特效,本文將用PyQt5實現(xiàn)這一特效,需要的可以參考一下
做GUI編程很常見的一個需求,要將按鈕或者其他控件的光標移入、移出、按壓時三種情況的控件樣式都不一樣,有些人把這三種情況叫做控件的三態(tài)
另一種情況需要更改光標的樣式,如何更改呢,本文就詳細闡述下
通常我們的鼠標在不同的狀態(tài)下會顯示不同的形狀,來提示用戶當前的狀態(tài),如忙碌,拖拽,禁止,改變窗體大小等:
1.設置鼠標形狀
相關鼠標圖示如下圖所示
2.鼠標形狀設置代碼實戰(zhàn)
設置鼠標形狀方法setCursor(),根據(jù)傳參不同設置不同形狀
光標的設置只需要使用setCurror()即可,以下示例了如何設置光標的樣式:
# 0. 導入需要的包和模塊 from PyQt5.Qt import * # 主要包含了我們常用的一些類, 匯總到了一塊 import sys # 1. 創(chuàng)建一個應用程序?qū)ο? app = QApplication(sys.argv) # 2. 控件的操作 # 2.1 創(chuàng)建控件 window = QWidget() # 2.2 設置控件 #設置窗口標題,默認標題是python,只有頂級控件才可以設置標題欄的標題 window.setWindowTitle("鼠標相關操作") #設置窗口大小,注意,設置的空間尺寸大小,不包含上面的標題欄 window.resize(500, 500) #默認鼠標形狀是個斜箭頭 window.setCursor(Qt.ArrowCursor) # 2.3 展示控件 window.show() # 3. 應用程序的執(zhí)行, 進入到消息循環(huán) sys.exit(app.exec_())
默認鼠標形狀是個斜箭頭
window.setCursor(Qt.ArrowCursor)
當鼠標移動到控件上市,展示我們設置的鼠標樣式
其他鼠標形狀展示
#小手形狀 window.setCursor(Qt.OpenHandCursor)
其他類型的鼠標形狀設置類似,有需求的小伙伴可以多試試
3.自定義鼠標形狀
簡單的定義一個光標需要以下三步:
- 1.創(chuàng)建一個圖形對象
- 2.將圖形對象傳入鼠標對象
- 3.使用setCursor()方法設置對象
自定義鼠標形狀,需要借助QCoursor對象
通過我們自己的圖片來設置鼠標形狀
先看下圖片
自定義鼠標形狀代碼實戰(zhàn)與解讀
from PyQt5.Qt import * import sys app = QApplication(sys.argv) window = QWidget() window.resize(500, 500) window.setWindowTitle("自定義鼠標樣式") # 創(chuàng)建QPixmap對象,并設置顯示的圖片 pixmap = QPixmap("xxx.png") # 設置對象寬和高按比例縮小,返回一個新對象。原對象并沒有被縮放 #pixmap.scaled(targetWidth, targetHeight, Qt.KeepAspectRatio) #targetWidth 和 targetHeight 是目標縮小后的寬度和高度。Qt.KeepAspectRatio 參數(shù)表示保持寬高比。 new_pixmap = pixmap.scaled(50, 50,Qt.KeepAspectRatio) # 創(chuàng)建QCursor對象(鼠標對象),用作setCursor參數(shù) # 設置該對象的作用點為圖片的左上角(0,0),默認是圖片中心點 # 默認QCursor(pixmap: QPixmap, hotX: int = -1, hotY: int = -1) 表示作用點在圖片中心點 cursor = QCursor(new_pixmap, 0, 0) # 設置window控件的鼠標樣式為自定義的QCursor對象:cursor window.setCursor(cursor) button = QPushButton(window) button.setText("按鈕") button.move(100,100) window.show() sys.exit(app.exec_())
運行,可見鼠標樣式變成了我們設置的樣子
并且左上角點擊起作用
以上就是python利用PyQt5設計鼠標顯示形狀的詳細內(nèi)容,更多關于python PyQt5鼠標顯示形狀的資料請關注腳本之家其它相關文章!
相關文章
python中不同數(shù)據(jù)對象的空值校驗總結(jié)
在Python中,我們可以使用不同的方式來校驗數(shù)值的空值、字符串的空值以及對象的空值,本文為大家整理了一些常見的方法,希望對大家有所幫助2024-01-01入門tensorflow教程之TensorBoard可視化模型訓練
在本篇文章中,主要介紹 了TensorBoard 的基礎知識,并了解如何可視化訓練模型中的一些基本信息,希望對大家的TensorBoard可視化模型訓練有所幫助2021-08-08