<p>试试看:</p>
<pre><code>import sys
from PyQt5.QtWidgets import (QApplication, QMainWindow, QAction, QMenuBar, QWidget,
QMdiArea, QMdiSubWindow, QProxyStyle, QStyle, QVBoxLayout)
from PyQt5.QtGui import (QIcon, QPainter, QPalette, QPixmap)
from PyQt5.QtCore import Qt, QSize
class MDIArea(QMdiArea):
def __init__(self, *args, **kwargs):
super(MDIArea, self).__init__(*args, **kwargs)
self.parent = args[0]
self.background_pixmap = self.parent.pixmap
self.centered = False
def paintEvent(self, event):
painter = QPainter()
painter.begin(self.viewport())
if not self.centered:
painter.drawPixmap(0, 0, self.width(), self.height(), self.background_pixmap)
painter.end()
class Mywindow(QMainWindow):
count = 1
def __init__(self, parent=None):
super(Mywindow, self).__init__(parent)
self.setWindowTitle('Customized style')
self.setWindowIcon(QIcon("im.png"))
# self.mdiarea = QMdiArea()
self.pixmap = QPixmap()
self.pixmap.load("im.png")
self.mdiarea = MDIArea(self)
self.setCentralWidget(self.mdiarea)
# self.mdiarea.setWindowTitle('Test')
self.window = QWidget()
sub = QMdiSubWindow()
sub.resize(QSize(200,200))
sub.setAttribute(Qt.WA_DeleteOnClose)
sub.setWidget(self.window)
sub.setWindowTitle("Test {}".format(self.count)) # +++
sub.setWindowIcon(QIcon("im.png"))
self.mdiarea.addSubWindow(sub)
sub.show()
style = """
QWidget {
color: #ffdd00;
background-color: #eee;
}
QMainWindow {
color: #ffdd00;
background-color: #ff3333;
}
"""
if __name__ == "__main__":
app = QApplication([])
app.setStyleSheet(style)
# app.setStyle('Fusion') # -
view = Mywindow()
# view.showMaximized()
view.resize(500, 500)
view.show()
sys.exit(app.exec_())
</code></pre>
<p><a href="https://i.stack.imgur.com/s6pbL.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/s6pbL.png" alt="enter image description here"/></a></p>