6

私は最近 python を学んでいて、Linux 用の字幕プレーヤーである最初の実際のアプリケーションを作成したいと思っています。これまでのところ、Windows ユーザーを対象としており、Linux では適切に動作しない Greenfish 字幕プレーヤーを使用してきました。

tkinter では透明なウィンドウが不可能であることを発見したので、qt でアプリケーションを作成したかったのですが、より良いフレームワークを知っている人は提案してください!

開始する前に、Web を数時間調査して、アプリケーションをフルスクリーンのフラッシュビデオに表示する方法を見つけましたが、これは不可能のようです。ただし、前述の GF 字幕プレーヤーは、Windows ではこれを行うことができますが、Linux ではできません (ワインを介して実行されているためかもしれません)。

私の質問は、フルスクリーンの Flash ビデオの上に残る透明なアプリケーションを作成することは可能ですか? もしそうなら、正しい方向に向けてもらえますか?

前もって感謝します。

編集:ここに私が試してきたいくつかのサンプルコードがあります。このコードによって生成されたウィンドウは、フルスクリーン ビデオの上に留まらない

import sys
from PyQt4 import QtGui, QtCore

class mymainwindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)

app = QtGui.QApplication(sys.argv)
mywindow = mymainwindow()
mywindow.show()
app.exec_()
mywindow.show()
4

2 に答える 2

7

以下のコード例は、Linux 上の他のすべてのウィンドウの上にある、中央にフレームのないウィンドウを作成します (ウィンドウをクリックして閉じることができます)。

import sys
from PyQt4 import QtGui, QtCore

class mymainwindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setWindowFlags(
            QtCore.Qt.WindowStaysOnTopHint |
            QtCore.Qt.FramelessWindowHint |
            QtCore.Qt.X11BypassWindowManagerHint
            )
        self.setGeometry(QtGui.QStyle.alignedRect(
            QtCore.Qt.LeftToRight, QtCore.Qt.AlignCenter,
            QtCore.QSize(220, 32),
            QtGui.qApp.desktop().availableGeometry()))

    def mousePressEvent(self, event):
        QtGui.qApp.quit()

app = QtGui.QApplication(sys.argv)
mywindow = mymainwindow()
mywindow.show()
app.exec_()
于 2014-09-21T00:32:30.420 に答える