实现自定义框架边框UI而不是标准UI

时间:2015-11-19 08:39:19

标签: user-interface pyqt

我正在使用PyQt4开发我的Python应用程序,我想在Windows中自定义我的应用程序界面(QMainWindow,QLineEdit等) 这个观点(或其他):

enter image description here

而不是这个(Windows 10上的默认样式):

enter image description here

1 个答案:

答案 0 :(得分:1)

对于窗框边框以外的所有样式,请使用Qt样式表(QSS)(Documentation)。

对于框架边框来说,它有点困难:

参见Qt window flags example,看看Qt可以对窗框做什么。

基本上你不能设置窗框样式(它们采用OS的样式),但是你可以隐藏/显示按钮,你可以完全无框地显示窗口。

然而,在Windows上,有些人入侵了Windows框架栏(Tabs in title bar: what's the secret?)。这也可能与Python有关。

最普遍的方法是(虽然这有点代价)不使用任何操作系统提供的框架(Qt::CustomizeWindowHint)然后在里面实现你自己的样式框架实现拖放标题栏和边框和等等。

通过这种方式,您可以轻松实现包括示例在内的所有可能的帧边框,但您必须重新实现按钮和拖动行为,并且响应可能比平时快一点。此外,外观也不是开箱即用的操作系统,因为它适用于Qt自己的框架边框。

例如在Linux中,标题栏通常在最大化时以不同方式显示 - 那时你就不会这样了。

自定义框架栏的示例:Customize title bar and window