91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于PyQT如何實現區分左鍵雙擊和單擊

發布時間:2020-07-23 14:32:32 來源:億速云 閱讀:220 作者:小豬 欄目:開發技術

這篇文章主要講解了基于PyQT如何實現區分左鍵雙擊和單擊,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

 在PyQt中沒有直接提供左鍵雙擊的判斷方法,需要自己實現,其思路主要如下所示:

1、起動一個定時器,判斷在指定的時間之內,點擊次數超過2次,則視為雙擊(其主要思路判斷兩次點擊的時間差在預測的條件以內)

2、 起動一個定時器,判斷在指定的時間之內,點擊次數超過2次,另外再獲取鼠標點擊的坐標,如果前后兩次點擊的坐標位置,屬于同一個位置,滿足這兩個條件則判斷為雙擊(其主要思路判斷兩次點擊的時間差在預測的條件以內,且點擊的坐標在預設的坐標之內,允許存在一定的偏差)

from PyQt5.QtCore import QTimer
from PyQt5 import QtCore, QtGui, QtWidgets

class myWidgets(QtWidgets.QTableWidget): 

  def __init__(self, parent=None):
    super(myWidgets, self).__init__(parent)
    self.isDoubleClick = False
    self.mouse = ""
  def mousePressEvent(self, e): 
    # 左鍵按下
    if e.buttons() == QtCore.Qt.LeftButton:
      QTimer.singleShot(0, lambda: self.judgeClick(e))
    # 右鍵按下
    elif e.buttons() == QtCore.Qt.RightButton:
      self.mouse = "右"
    # 中鍵按下
    elif e.buttons() == QtCore.Qt.MidButton:
      self.mouse = '中'
    # 左右鍵同時按下
    elif e.buttons() == QtCore.Qt.LeftButton | QtCore.Qt.RightButton:
      self.mouse = '左右'
    # 左中鍵同時按下
    elif e.buttons() == QtCore.Qt.LeftButton | QtCore.Qt.MidButton:
      self.mouse = '左中'
    # 右中鍵同時按下
    elif e.buttons() == QtCore.Qt.MidButton | QtCore.Qt.RightButton:
      self.mouse = '右中'
    # 左中右鍵同時按下
    elif e.buttons() == QtCore.Qt.LeftButton | QtCore.Qt.MidButton | QtCore.Qt.RightButton:
      self.mouse = '左中右'
  def mouseDoubleClickEvent(self,e):
    # 雙擊
    self.mouse = "雙擊"
    self.isDoubleClick=True

  def judgeClick(self,e):
    if self.isDoubleClick== False:
      self.mouse="左"
    else:
      self.isDoubleClick=False
      self.mouse = "雙擊"

from PyQt5.QtCore import QTimer
from PyQt5 import QtCore, QtGui, QtWidgets

class myWidgets(QtWidgets.QTableWidget):

  def __init__(self, parent=None):
    super(myWidgets, self).__init__(parent)
    self.mouse = ""
    self.timer=QTimer(self)
    self.timer.timeout.connect(self.singleClicked)

  def singleClicked(self):
    if self.timer.isActive():
      self.timer.stop()
      self.mouse="左"

  def mouseDoubleClickEvent(self,e):
    if self.timer.isActive() and e.buttons() ==QtCore.Qt.LeftButton:
      self.timer.stop()
      self.mouse="雙擊"
    super(myWidgets,self).mouseDoubleClickEvent(e)

  def mousePressEvent(self,e):
    if e.buttons()== QtCore.Qt.LeftButton:
      self.timer.start(1000)
    elif e.buttons()== QtCore.Qt.RightButton:
      self.mouse="右"
    super(myWidgets,self).mousePressEvent(e)

看完上述內容,是不是對基于PyQT如何實現區分左鍵雙擊和單擊有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台东县| 桦甸市| 甘肃省| 金门县| 龙山县| 竹溪县| 娄底市| 凌海市| 元阳县| 青阳县| 青铜峡市| 哈巴河县| 融水| 萨迦县| 蛟河市| 南康市| 镇原县| 怀柔区| 三门县| 涟源市| 茂名市| 玛沁县| 二手房| 应用必备| 文登市| 咸宁市| 湘阴县| 淳化县| 洛扎县| 张家界市| 东兰县| 普宁市| 竹山县| 马鞍山市| 宝山区| 车险| 冷水江市| 汝州市| 报价| 东平县| 松桃|