2016-05-13 4 views
1

私は以下のコードをPyQt4でクリック、右クリック、スクロールすることができます。私はPyQt5のコードを変換しています。私のコードではこの要素に基づいています。PyQt5のQLabelに信号を追加するには?

class ExtendedQLabel(QLabel): 
    def __init(self, parent): 
     super().__init__(parent) 

    def mousePressEvent(self, ev): 
     if ev.button() == QtCore.Qt.RightButton: 
      self.emit(SIGNAL('rightClicked()')) 
     else: 
      self.emit(SIGNAL('clicked()')) 

    def wheelEvent(self, ev): 
     self.emit(SIGNAL('scroll(int)'), ev.delta()) 

このPyQt5はどのように互換性がありますか?

答えて

2

[OK]を、物事の多くは、私は私が間違って何をしていたか理解した後:

from PyQt5 import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets import * 
from PyQt5.QtCore import * 

class ExtendedQLabel(QLabel): 
    def __init(self, parent): 
     super().__init__(parent) 

    clicked = pyqtSignal() 
    rightClicked = pyqtSignal() 

    def mousePressEvent(self, ev): 
     if ev.button() == Qt.RightButton: 
      self.rightClicked.emit() 
     else: 
      self.clicked.emit() 

if __name__ == '__main__': 
    app = QApplication([]) 
    eql = ExtendedQLabel() 
    eql.clicked.connect(lambda: print('clicked')) 
    eql.rightClicked.connect(lambda: print('rightClicked')) 
    eql.show() 
    app.exec_() 

ラインでの作業上のコードを作るそのクラスにこれらの信号を結びつけるものをテキストclicked = pyqtSignal()rightClicked = pyqtSignal()と?正しい答えは正しい字下げです。正しい字下げは、無意味な変数をランダムに作成するのではなく、変数をクラスにネストします。これを知るには多くの時間がかかりましたので、ここに残しておけば、誰かがこれをGoogleにすれば便利かもしれません。

関連する問題