Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改QMainWindow边框和标题栏的颜色?_Python_Qt_Pyqt_Qmainwindow_Qtstylesheets - Fatal编程技术网

Python 如何更改QMainWindow边框和标题栏的颜色?

Python 如何更改QMainWindow边框和标题栏的颜色?,python,qt,pyqt,qmainwindow,qtstylesheets,Python,Qt,Pyqt,Qmainwindow,Qtstylesheets,下面的QMainWindow使用QSS指定了深灰色背景色。 我还想更改边框的颜色和标题栏的颜色 如何控制QMainWindow边框和标题栏的外观 我想知道如何改变它们的颜色,以及如何控制边框的宽度和标题栏的高度 from PyQt4.QtCore import * from PyQt4.QtGui import * appStyle=""" QMainWindow{ background-color: darkgray; } """ class GUI(QMainWindow): d

下面的
QMainWindow
使用QSS指定了深灰色背景色。 我还想更改边框的颜色和标题栏的颜色

如何控制
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_())


据我所知,您不能(在Windows上,可能有一些特殊的依赖操作系统的调用)在Qt中修改顶级小部件(桌面上的真实窗口)的边框和标题,因为它们是从操作系统交付的

但是,您可以设置小部件
无框架
,并为自己添加边框

例如:

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_()
看起来

您会看到,不幸的是,通常的标题栏消失了,因此没有拖动,没有调整大小,没有关闭或最小化。这一切都必须由你自己来实现。例如,见