一、窗口风格
1、设置窗口风格
(1)可以为每个Widget都设置风格
setStyle(QStyle style)
(2)获得当前平台支持的原有的QStyle样式
QStyleFactory.keys()
(3)对QApplication设置QStyle样式
QApplication.setStyle(QStyleFactory.create("WindowsXP")
如果其他Widget没有设置QStyle,则默认使用QApplication设置的QStyle。
下列为演示设置窗口风格的例子:
''' | |
【简介】 | |
界面风格例子 | |
''' | |
import sys | |
from PyQt5.QtWidgets import * | |
from PyQt5.QtCore import * | |
from PyQt5 import QtCore | |
from PyQt5.QtGui import * | |
class AppWidget( QWidget): | |
def __init__(self, parent=None): | |
super(AppWidget, self).__init__(parent) | |
self.setWindowTitle("界面风格例子") | |
horizontalLayout = QHBoxLayout() | |
self.styleLabel = QLabel("Set Style:") | |
self.styleComboBox = QComboBox() | |
# 增加 styles 从 QStyleFactory | |
self.styleComboBox.addItems( QStyleFactory.keys()) | |
# 选择当前界面风格 | |
index = self.styleComboBox.findText( | |
QApplication.style().objectName(), | |
QtCore.Qt.MatchFixedString) | |
# 设置当前界面风格 | |
self.styleComboBox.setCurrentIndex(index) | |
# 通过comboBox选择界面分割 | |
self.styleComboBox.activated[str].connect(self.handleStyleChanged) | |
horizontalLayout.addWidget(self.styleLabel) | |
horizontalLayout.addWidget(self.styleComboBox) | |
self.setLayout(horizontalLayout) | |
# 改变界面风格 | |
def handleStyleChanged(self, style): | |
QApplication.setStyle(style) | |
if __name__ == "__main__": | |
app = QApplication(sys.argv) | |
widgetApp = AppWidget() | |
widgetApp.show() | |
sys.exit(app.exec_()) |
运行结果:
2、设置窗口样式
PyQt使用setWindowFlags(Qt.WindowFlags)函数设置窗口样式,其具体参数如下。
(1)PyQt有如下几种基本的窗口类型。
*Qt.Widget,默认窗口,有最小化、最大化、关闭按钮。
*Qt.Window,普通窗口,有最小化、最大化、关闭按钮。
*Qt.Dialog,对话框窗口,有问号和关闭按钮
*Qt.Popup,弹出窗口,窗口无边框
*Qt.ToolTip,提示窗口,窗口无边框,无任务栏
*Qt.SplashScreen,闪屏,窗口无边框,无任务栏
*Qt.SubWindow,子窗口,窗口无按钮,但有标题。