我可以在Windows上使用Python创建类似于面板的东西吗?

时间:2011-10-19 17:24:55

标签: python windows winapi pywin32

对于模糊的标题感到抱歉,无法提供更多信息的内容%)

我想要的是屏幕顶部的5px水平面板,我可以在其上绘制(并且,也可以处理点击)。

以下功能之一会很棒(虽然我知道它们可能无法将两者结合起来):

  • 面板应该像Windows自己的任务栏一样,即最大化的窗口不应该与它重叠,而是从它下面开始
  • 该面板也应该在全屏应用中显示

是否可以在Python中执行此操作?

感谢。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。 “how”部分取决于您选择的GUI库,有很多选项,但大多数人会推荐以下两个:wxPython或PySide,它是Qt for Python。

PySide有很好的文档和tutorials

您要做的是创建一个QMainWindow实例并根据您的要求设置WindowFlags。您可能需要以下组合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特定的方法来对抗它并获得更高,但这样的要求将是一个设计错误。