私のQtアプリケーションでは、QCalendarWidget
を使用しています。マウスがカレンダーの新しいセルに入ったときに通知を受けたいと思います。マウスカーソルがインデックスによって を指定された項目を入力したときに、この信号が発せられるPyQt:セルがQCalendarWidgetに入力されたときに信号を送信
:私は
QCalendarWidget
はQAbstractItemViewから継承し、これはentered
信号を有する内部QTableView
を使用していることを知っています。この機能を使用するには、マウストラッキングを有効にする必要があります。
私は次のコードで信号を受信しようとした:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MyCalendar:
def __init__(self):
app = QApplication(sys.argv)
window = QMainWindow()
cal = QCalendarWidget(window)
window.resize(320, 240)
cal.resize(320, 240)
table = cal.findChild(QTableView)
table.setMouseTracking(True)
table.entered.connect(self.onCellEntered)
window.show()
sys.exit(app.exec_())
def onCellEntered(self, index):
print("CellEntered")
if __name__ == "__main__":
window = MyCalendar()
しかし、私のコールバック関数が呼び出されることはありません。理由は何ですか?
:ここ
があることを実装デモスクリプトです。 –
@GeorgSchölly質問のコードをQCalendarWidgetを表示する作業ウィンドウアプリケーションで更新しましたが、信号が接続されていても 'onCellEntered'メソッドは呼び出されません。 – Cilenco