【发布时间】:2014-11-15 00:00:58
【问题描述】:
我最近一直在学习 python,现在我想(尝试)创建我的第一个真正的应用程序,一个用于 Linux 的字幕播放器。到目前为止,我一直在使用 Greenfish 字幕播放器,它是针对 Windows 用户的,并且在 Linux 中不能正常工作。
我想在qt中创建应用程序,因为我发现透明窗口在tkinter中是不可能的,但是如果有人知道更好的框架,请建议!
现在,在开始之前,我已经研究了几个小时的网络,以了解如何让我的应用程序显示在全屏 Flash 视频上,这似乎是不可能的。然而,前面提到的 GF 字幕播放器在 Windows 中可以做到这一点,但在 Linux 中却没有(可能也是因为它是通过 wine 运行的)。
所以我的问题是,是否可以创建一个保留在全屏 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()
【问题讨论】:
-
将透明窗口作为屏幕堆栈顶部的部分叠加层应该没有问题。在 Qt 中您需要做的就是设置一个透明的窗口背景颜色(例如通过样式表),然后提升您的窗口以使其位于其他所有内容之上。我不知道你在哪里看,但 QWidget 文档有你需要的一切。事实上,一个字幕“播放器”在 Qt 中大约有 100 行 :)
-
到目前为止,我尝试过:QtCore.Qt.WindowStaysOnTopHint 将窗口设置在所有其他窗口之上,但是它消失在全屏视频后面。视频设置为全屏模式后是否必须将其置于顶部?
-
正如之前的评论者所建议的,这应该是一件相当微不足道的事情。请发布 MCV example 来说明您遇到的问题,而不是强迫人们猜测您的代码有什么问题。
-
抱歉,我还没有开始编写代码,我正在尝试我在初始帖子中编辑的这段代码。
标签: python window pyqt4 stayontop