كيف يمكنني التقاط جميع أحداث الماوس في عنصر واجهة مستخدم ينحدر من عنصر واجهة مستخدم كيو تي في Pyqt؟

StackOverflow https://stackoverflow.com/questions/1716916

  •  19-09-2019
  •  | 
  •  

سؤال

على وجه الخصوص، أنا ميراث من QCALENDARWIDGED وأريد تجاوز طريقة الفخمة لتصفية المواعيد المسموح لها بحيث يتم تحديدها (SIX WOTE، وليس نطاقا بسيطا). ولكن عندما أتجاوز الطريقة، فإنه لا يمسك بأي أحداث تذهب إلى الحاجيات الطفل داخل التقويم. كيف يمكنني أن أفعل هذا؟

هل كانت مفيدة؟

المحلول

أنا مندهش من أن الفخمة الغالبة لا يعمل من أجل QCALENDARWIDGET. وهو يعمل لمعظم الحاجيات الأخرى. بعد النظر إلى مستندات qcalendarwidget، لاحظت أن هناك إشارة نقرت. إذا قمت بتوصيل أنه يعمل.

import sys

from PyQt4 import QtGui, QtCore

class MyCalendar(QtGui.QCalendarWidget):
    def __init__(self):
        QtGui.QCalendarWidget.__init__(self)
        self.connect(self, QtCore.SIGNAL("clicked(QDate)"), self.on_click)
        self.prev_date = self.selectedDate()

    def on_click(self, date):
        if self.should_ignore(date):
            self.setSelectedDate(self.prev_date)
            return
        self.prev_date = date

    def should_ignore(self, date):
        """ Do whatever here """
        return date.day() > 15

app = QtGui.QApplication(sys.argv)
cal = MyCalendar()
cal.show()
app.exec_()

لم أكن قد راجعت qcalendarwidget من قبل. القطعة الصغيرة الحلوة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top