Pyqt Phononプレーヤーからフルスクリーンへ?
-
27-10-2019 - |
質問
フォノンプレーヤーをフルスクリーンに設定する方法を考えていましたか?このコードを試しています。
if not self.ui.videoPlayer.isFullScreen():
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()
しかし、私はこのエラーメッセージを受け取り続けています
typeRerr: 'sip.methoddescriptor'オブジェクトは呼び出されません
上記のコードは、サンプルプロジェクトからのものです。元のコードはそうでした
def full(self):
if not self.videoWidget.isFullScreen():
self.videoWidget.enterFullScreen()
else:
self.videoWidget.exitFullScreen()
私はそれをpyqtで再現しています、そしてそれは私にとって難しいようです。誰かが私が欠けていること(それについての意を持っている)や、私が間違っていることについて私を導くことができますか?
解決
a VideoPlayer aと同じものではありません VideWidget.
VideoPlayer
のサブクラスです QWidget
, 、 それはそう 意思 一つ持っている isFullScreen
方法 - しかしそれ しない 方法があります enterFullScreen
と exitFullScreen
, 、に属します VideoWidget
クラス。
しかし VideoPlayer
クラスには VideWidget 使用するビデオウィジェットのインスタンスを返す方法であるため、コードの例はおそらく次のように変更する必要があります。
videoWidget = self.ui.videoPlayer.videoWidget()
if videoWidget.isFullScreen():
videoWidget.exitFullScreen()
else:
videoWidget.enterFullScreen()
編集
フルスクリーンモードを終了する方法を提供するには、キーボードショートカットを設定します。
class MainWindow(QtGui.QMainWindow):
def __init__(self)
...
self.shortcutFull = QtGui.QShortcut(self)
self.shortcutFull.setKey(QtGui.QKeySequence('F11'))
self.shortcutFull.setContext(QtCore.Qt.ApplicationShortcut)
self.shortcutFull.activated.connect(self.handleFullScreen)
def handleFullScreen(self):
videoWidget = self.ui.videoPlayer.videoWidget()
if videoWidget.isFullScreen():
videoWidget.exitFullScreen()
else:
videoWidget.enterFullScreen()
他のヒント
問題はあなたの使用だと思います self.ui.videoPlayer.isFullScreen
, 、それはおそらくあなたが使用するときに真または虚偽を返すことです self.ui.videoPlayer.isFullScreen()
「false()」に本当に解決しています。
奇妙なことに、pyqt ドキュメンテーション 利用可能なメソッド/プロパティの一部として「isfullscreen」をリストしません。しかし QWidgetドキュメント Isfullscreenがブール値を返すように表示します。
代わりに、これを試してください:
if not self.ui.videoPlayer.isFullScreen:
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()