Цвет фона в pyqt
Подскажите, как можно изменить цвет фона?
Пытаюсь изменить с помощью setStyleSheet, он меняется, но настройка шрифта сбивается.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class ClassesPage1(QtWidgets.QWizardPage):
def __init__(self, *args, **kwargs):
super(ClassesPage1, self).__init__(*args, **kwargs)
self.setTitle("...")
self.setSubTitle("...")
#self.setStyleSheet("background-color: rgb(100, 133, 202);")
self.checkBox_1 = QtWidgets.QCheckBox('...')
self.checkBox_2 = QtWidgets.QCheckBox('...')
self.checkBox_3 = QtWidgets.QCheckBox('...')
self.checkBox_4 = QtWidgets.QCheckBox('...')
self.layout = QtWidgets.QVBoxLayout()
self.layout.addWidget(self.checkBox_1)
self.layout.addWidget(self.checkBox_2)
self.layout.addWidget(self.checkBox_3)
self.layout.addWidget(self.checkBox_4)
self.setLayout(self.layout)
self.checkBox_1.stateChanged.connect(self.check)
self.checkBox_2.stateChanged.connect(self.check)
self.checkBox_3.stateChanged.connect(self.check)
self.checkBox_4.stateChanged.connect(self.check)
self.listCheckBox = [self.checkBox_1, self.checkBox_2, self.checkBox_3, self.checkBox_4]
self.a = 0
def check(self, state):
self.a = 0
if state == Qt.Checked:
a = a + 1
for checkBox in self.listCheckBox:
if checkBox.isChecked():
self.a += 1
print(self.a)
def nextId(self):
return Wizard.class4
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = ClassesPage1()
w.show()
sys.exit(app.exec_())
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Из вашего примера я не понял настройка какого шрифта сбивается? Пожалуйста, в следующий раз постарайтесь показать, что вы хотите получить в итоге.
А пока вот некоторая реализация StyleSheet для QCheckBox:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class ClassesPage1(QtWidgets.QWizardPage):
def __init__(self, *args, **kwargs):
super(ClassesPage1, self).__init__(*args, **kwargs)
self.setTitle("...")
self.setSubTitle("...")
# self.setStyleSheet("background-color: rgb(100, 133, 202);")
self.checkBox_1 = QtWidgets.QCheckBox('cb1 ...')
self.checkBox_2 = QtWidgets.QCheckBox('cb2 ...')
self.checkBox_3 = QtWidgets.QCheckBox('cb3 ...')
self.checkBox_4 = QtWidgets.QCheckBox('cb4 ...')
self.layout = QtWidgets.QVBoxLayout()
self.layout.addWidget(self.checkBox_1)
self.layout.addWidget(self.checkBox_2)
self.layout.addWidget(self.checkBox_3)
self.layout.addWidget(self.checkBox_4)
self.setLayout(self.layout)
self.checkBox_1.stateChanged.connect(self.check)
self.checkBox_2.stateChanged.connect(self.check)
self.checkBox_3.stateChanged.connect(self.check)
self.checkBox_4.stateChanged.connect(self.check)
self.listCheckBox = [self.checkBox_1, self.checkBox_2, self.checkBox_3, self.checkBox_4]
self.a = 0
def check(self, state):
self.a = 0
# ? if state == QtCore.Qt.Checked:
# ? a = a + 1
for checkBox in self.listCheckBox:
if checkBox.isChecked():
self.a += 1
print(self.a)
def nextId(self):
return Wizard.class4
StyleSheet = '''
QWizardPage {
background-color: rgb(100, 133, 202);
}
QCheckBox {
spacing: 5px;
font-size:25px;
background-color: rgb(200, 133, 202);
}
QCheckBox::indicator {
width: 33px;
height: 33px;
}
'''
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
app.setStyle("fusion") # +++
app.setStyleSheet(StyleSheet) # +++
w = ClassesPage1()
w.show()
sys.exit(app.exec_())
Автор решения: Роман Бармин
→ Ссылка
self.setStyleSheet("""
QWidget {
background-color: green;
}
""")
