2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊
在文檔中,有一段關(guān)于繼承和樣式的段落:
遺產(chǎn)
在經(jīng)典 CSS 中,當(dāng)未明確設(shè)置項(xiàng)目的字體和顏色時(shí),它會(huì)自動(dòng)從父項(xiàng)繼承。使用 Qt 樣式表時(shí),小部件不會(huì)自動(dòng)從其父小部件繼承其字體和顏色設(shè)置。
如果我們想在 QGroupBox 及其子項(xiàng)上設(shè)置顏色,我們可以這樣寫:
qApp->setStyleSheet("QGroupBox, QGroupBox * { color: red; }");
所以你可能想要改變
QMainWindowStyle = QMainWindow {color: #dddddd; background-color: #333333;}
到
QMainWindowStyle = QMainWindow, QMainWindow * {color: #dddddd; background-color: #333333;}
這樣主窗口的所有子部件都具有相同的樣式。

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
試試看:
from PyQt5 import QtWidgets
class Dialog(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.layout = QtWidgets.QGridLayout()
self.main = QtWidgets.QWidget()
self.main.setLayout(self.layout)
# self.setStyleSheet(QMainWindowStyle)
self.setCentralWidget(self.main)
self.show()
class AppearanceTab(QtWidgets.QWidget):
def __init__(self):
super().__init__()
class SettingsDialog(Dialog):
def __init__(self):
super().__init__()
self.tabs = QtWidgets.QTabWidget(self)
# self.tabs.setStyleSheet(QTabWidgetStyle)
self.layout.addWidget(self.tabs)
self.tab_appearance = AppearanceTab()
# self.tab_appearance.setStyleSheet(QWidgetStyle)
## self.tab_appearance.setStyleSheet("QWidget, QWidget * {color: #dddddd; background-color: #333333;}") #note: Tried this however it didn't work.
self.tab_appearance_layout = QtWidgets.QGridLayout()
self.tab_appearance.setLayout(self.tab_appearance_layout)
self.tabs.addTab(self.tab_appearance, "Appearance")
self.tab_server = QtWidgets.QWidget()
# self.tab_server.setStyleSheet(QWidgetStyle)
self.tab_server_layout = QtWidgets.QGridLayout()
self.tab_server.setLayout(self.tab_server_layout)
self.tabs.addTab(self.tab_server, "Server")
style = """
QWidget {
color: #dddddd;
background-color: #333333;
}
QMainWindow {
color: #dddddd;
background-color: #333333;
}
QTabWidget {
background-color: #333333;
color: #dddddd;
}
QTabBar {
color: #dddddd;
background-color: #333333;
}
"""
if __name__ == "__main__":
QtWidgets.QApplication.setStyle(QtWidgets.QStyleFactory.create("Fusion"))
app = QtWidgets.QApplication([])
app.setStyleSheet(style) # < ---
d = SettingsDialog()
print(app.exec_())
添加回答
舉報(bào)