PyQt4:如何使用预留空间制作带底片的窗口

Ben*_*min 0 python flags overlap pyqt4 borderless

我想使用PyQt4 for Linux制作类似面板的应用程序.为此我需要我创建的窗口:

  • 没有装饰
  • 有预留空间
  • 显示在所有工作区上

从阅读文档我已经知道我应该使用QtWindowFlags.但我不知道如何做到这一点.另外我相信应该有一个Qt.WindowType提示告诉WM窗口是一个"停靠"应用程序.我已经使用pygtk在这个帖子之后做了这个,但是在这里用Qt我真的不知道如何处理这个.(我更需要Qt的主题/皮肤应用程序的能力.)

下面是我制作的当前代码(没什么特别的).

import sys
from PyQt4 import QtGui

class Panel(QtGui.QWidget):
def __init__(self, parent=None): ## should the QtWindowFlag be here?
    QtGui.QWidget.__init__(self, parent) ## should the QtWindowFlag be there as well?

    self.setWindowTitle('QtPanel')
    self.resize(QtGui.QDesktopWidget().screenGeometry().width(), 25)
    self.move(0,0)

def main():
    app = QtGui.QApplication(sys.argv)
    panel = Panel()
    panel.show()
    sys.exit(app.exec_())
    return 0

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

谁能帮我这个?谢谢 :)

Luk*_*uke 5

阅读有关QWidget.windowFlags属性的信息:http://doc.qt.nokia.com/4.7/qwidget.html#windowFlags-prop

例:

>>> from PyQt4 import QtGui, QtCore
>>> app = QtGui.QApplication([])
>>> win = QtGui.QMainWindow()
>>> win.setWindowFlags(win.windowFlags() | QtCore.Qt.FramelessWindowHint)
>>> win.show()
Run Code Online (Sandbox Code Playgroud)