我可以用Python在Windows上创建类似面板的东西吗?
抱歉标题有点模糊,想不出更好的描述了 %)
我想要的是一个在屏幕顶部的5像素宽的横向面板,我可以在上面画东西(可能还可以处理点击事件)。
如果能实现以下其中一个功能就太棒了(虽然我知道可能不太可能同时实现这两个功能):
- 这个面板应该像Windows的任务栏一样,也就是说,最大化的窗口不能覆盖它,而是应该从它的下面开始显示
- 这个面板在全屏应用中也应该能显示
用Python能做到这一点吗?
谢谢。
1 个回答
0
是的,这是可能的。至于“怎么做”,就要看你选择哪个图形用户界面(GUI)库了,有很多选择,但大多数人会推荐以下两个:wxPython 或 PySide,也就是 Python 版本的 Qt。
PySide 有很好的文档和教程。
你需要做的是创建一个 QMainWindow 实例,并根据你的需求设置窗口标志。你可能想要的组合是 Qt::Window | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint
。
大概是这样的:
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class Form(QMainWindow):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
self.setWindowFlags(Qt::Window | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint)
if __name__ == '__main__':
# Create the Qt Application
app = QApplication(sys.argv)
# Create and show the form
form = Form()
form.show()
# Run the main Qt loop
sys.exit(app.exec_())
需要注意的是,这种窗口“总在最上面”的特性是有一定限制的。虽然有一些特定于 Win32 的方法可以让窗口更高,但如果有这样的需求,那可能是设计上的错误。