使用QSS为下面的QMainWindow
指定了深灰色背景色。
我还想更改边框的颜色和标题栏的颜色。
如何控制QMainWindow
边框和标题栏的外观?
我想知道如何更改颜色以及如何控制边框宽度和标题栏的高度。
from PyQt4.QtCore import *
from PyQt4.QtGui import *
appStyle="""
QMainWindow{
background-color: darkgray;
}
"""
class GUI(QMainWindow):
def __init__(self):
super(GUI, self).__init__()
self.setStyleSheet(appStyle)
if __name__ == '__main__':
if not QApplication.instance(): app=QApplication([])
w=GUI()
w.setStyleSheet(appStyle)
w.show()
w.raise_()
sys.exit(app.exec_())
答案 0 :(得分:7)
据我所知,你不能(在Windows上可能有一些特殊的OS依赖调用)修改Qt中顶级窗口小部件(桌面上的真实窗口)的边框和标题,因为它们是从操作系统传递的。
但是,您可以设置小部件frameless
并为自己添加边框。
示例:
from PySide import QtGui, QtCore
app = QtGui.QApplication([])
app.setStyleSheet('QMainWindow{background-color: darkgray;border: 1px solid black;}')
w = QtGui.QMainWindow()
w.setWindowFlags(QtCore.Qt.FramelessWindowHint)
w.show()
app.exec_()
看起来像
你会发现不幸的是,通常标题栏会消失,因此不会拖动,不会调整大小,不会关闭或最小化。这一切都必须自己实现。请参阅示例How can I handle events in the titlebar and change its color etc ?。