PyQtカーソルの変更、マウスの移動によるコントロール効果の変更
マウスイベント GUIプログラミングの一般的なニーズの一つは、ボタンや他のコントロールのカーソルを移動、移動、押圧するときの3つの状況のコントロールスタイルが異なり、この3つの状況をコントロールの3つの状態 と呼ぶ人もいる.カーソルのスタイルを変更する必要がある場合 カーソルマウスカーソル
パラメータ
効果
PointingHandCursor
手型になる
CrossCursor
十字型に変更
ArrowCursor
矢印に変更
UpArrowCursor
上向き矢印に変更
IBeamCursor
テキスト入力型に変更
WaitCursor
待機型に変更
BusyCursor
ビジーになる
ForbiddenCursor
禁止型になる
WhatsThisCursor
疑問符型にする
SizeVerCursor
垂直ドラッグに変更
SizeHorCursor
水平ドラッグにする
SizeBDiagCursor
対角線調整大小型化
SizeAllCursor
オブジェクトを移動する
SplitHCursor
水平分割
SplitVCursor
垂直分割
OpenHandCursor
オープンにする
ClosedHandCursor
オフにする
BlankCursor
空白にする
イベントにマウスを移動コントロールのマウスをバインド関数に移動または移動し、独自の機能を行うには、このコントロール(QLable、QtushButton)を継承し、このような関連メソッド を書き換えるクラスを書く必要があります.関連イベントのまとめ(個人時間が限られているため、その機能をすべて検索してテストすることはできませんが、ここではよく使われる一部を整理して、簡単な英語の組み合わせで、分かりにくいはずです)
≪イベント|Events|ldap≫
さぎょう
enterEvent
マウス移動トリガ
leaveEvent
マウスオフトリガ
mouseDoubleClickEvent
マウスダブルクリックトリガ
mouseMoveEvent
マウス移動トリガ
mousePressEvent
マウス押圧トリガ
mouseReleaseEvent
マウスリリーストリガ
keyPressEvent
キーボード押下トリガ
keyReleaseEvent
キーボードリリーストリガ
closeEvent
クローズ時にトリガー
resizeEvent
大時間トリガの設定
showEvent
コントロール表示時にトリガー
dragLeaveEvent
dragMoveEvent
dropEvent
focusInEvent
focusOutEvent
hideEvent
inputMethodEvent
installEventFilter
customEvent
dragEvent
actionEvent
changeEvent
childEvent
contextMenuEvent
moveEvent
nativeEvent
paintEvent
removeEventFliter
tabletEvent
timerEvent
wheelEvent
詳細コード
self.btn.setCursor(QCursor(Qt.PointingHandCursor))
を変更パラメータ
効果
PointingHandCursor
手型になる
CrossCursor
十字型に変更
ArrowCursor
矢印に変更
UpArrowCursor
上向き矢印に変更
IBeamCursor
テキスト入力型に変更
WaitCursor
待機型に変更
BusyCursor
ビジーになる
ForbiddenCursor
禁止型になる
WhatsThisCursor
疑問符型にする
SizeVerCursor
垂直ドラッグに変更
SizeHorCursor
水平ドラッグにする
SizeBDiagCursor
対角線調整大小型化
SizeAllCursor
オブジェクトを移動する
SplitHCursor
水平分割
SplitVCursor
垂直分割
OpenHandCursor
オープンにする
ClosedHandCursor
オフにする
BlankCursor
空白にする
イベントにマウスを移動
class MyBtn(QPushButton):
def __init__(self, text):
super().__init__(text)
def mouseMoveEvent(self, e):
print("ok")
def mousePressEvent(self, e):
print("Not Ok")
def enterEvent(self, a0):
print("123")
return super().enterEvent(a0)
def leaveEvent(self, a0):
print("321")
return super().leaveEvent(a0)
≪イベント|Events|ldap≫
さぎょう
enterEvent
マウス移動トリガ
leaveEvent
マウスオフトリガ
mouseDoubleClickEvent
マウスダブルクリックトリガ
mouseMoveEvent
マウス移動トリガ
mousePressEvent
マウス押圧トリガ
mouseReleaseEvent
マウスリリーストリガ
keyPressEvent
キーボード押下トリガ
keyReleaseEvent
キーボードリリーストリガ
closeEvent
クローズ時にトリガー
resizeEvent
大時間トリガの設定
showEvent
コントロール表示時にトリガー
dragLeaveEvent
dragMoveEvent
dropEvent
focusInEvent
focusOutEvent
hideEvent
inputMethodEvent
installEventFilter
customEvent
dragEvent
actionEvent
changeEvent
childEvent
contextMenuEvent
moveEvent
nativeEvent
paintEvent
removeEventFliter
tabletEvent
timerEvent
wheelEvent
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QVBoxLayout
from PyQt5.QtGui import QCursor, QMouseEvent
from PyQt5.QtCore import Qt
import sys
class testWindow(QWidget):
def __init__(self):
super().__init__()
self.btn1 = QPushButton("btn1")
self.btn2 = QPushButton("btn2")
self.btn3 = MyBtn(text="btn3")
self.btn1.setCursor(QCursor(Qt.PointingHandCursor))
self.btn2.setCursor(QCursor(Qt.CrossCursor))
self.btn3.event
self.layout = QVBoxLayout()
self.layout.addWidget(self.btn1)
self.layout.addWidget(self.btn2)
self.layout.addWidget(self.btn3)
self.setLayout(self.layout)
def test(self):
print("ok")
class MyBtn(QPushButton):
def __init__(self, text):
super().__init__(text)
def mouseMoveEvent(self, e):
print("ok")
def mousePressEvent(self, e):
print("Not Ok")
def enterEvent(self, a0):
print("123")
return super().enterEvent(a0)
def leaveEvent(self, a0):
print("321")
return super().leaveEvent(a0)
if __name__ == "__main__":
app = QApplication(sys.argv)
w = testWindow()
w.show()
sys.exit(app.exec_())