Как увеличить расстояние между итемами в QComboBox?
from PyQt5.QtWidgets import (QApplication, QFrame, QVBoxLayout, QLabel, QComboBox, QWidget)
import sys
class PortionStepOne(QWidget):
def __init__(self, parent=None):
super(PortionStepOne, self).__init__(parent)
self.label_meal = QLabel('Выберите прием пищи')
self.label_meal.setStyleSheet('''QLabel {
font-size: 15px;
}''')
self.line_meal = QFrame()
self.line_meal.setFrameShape(QFrame.HLine)
self.box_meal_time = QComboBox()
self.box_meal_time.addItems(['Завтрак', 'Второй завтрак', 'Обед', 'Второй обед', 'Ужин',
'Второй ужин', 'Перекус'])
self.box_meal_time.setObjectName('box_meal_time')
self.box_meal_time.setStyleSheet('''#box_meal_time {
font: 17px;
}
#box_meal_time QAbstractItemView::item {
padding-bottom: 30px;
}
''')
self.hbox_meal = QVBoxLayout()
self.hbox_meal.addWidget(self.box_meal_time)
self.main_box_meal_time = QVBoxLayout()
self.main_box_meal_time.addWidget(self.label_meal)
self.main_box_meal_time.addWidget(self.line_meal)
self.main_box_meal_time.addLayout(self.hbox_meal)
self.main_box_meal_time.addStretch(1)
self.setLayout(self.main_box_meal_time)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = PortionStepOne()
win.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Магия не работает для элементов, пока не добавить QStyledItemDelegate:
self.box_meal_time.view().setItemDelegate(QStyledItemDelegate(self))
Кст, QAbstractItemView::item можно сократить до ::item
Весь код:
from PyQt5.QtWidgets import QApplication, QFrame, QVBoxLayout, QLabel, QComboBox, QWidget, QStyledItemDelegate
import sys
class PortionStepOne(QWidget):
def __init__(self, parent=None):
super(PortionStepOne, self).__init__(parent)
self.label_meal = QLabel('Выберите прием пищи')
self.label_meal.setStyleSheet('''
QLabel {
font-size: 15px;
}
''')
self.line_meal = QFrame()
self.line_meal.setFrameShape(QFrame.HLine)
self.box_meal_time = QComboBox()
self.box_meal_time.addItems([
'Завтрак', 'Второй завтрак', 'Обед', 'Второй обед', 'Ужин',
'Второй ужин', 'Перекус'
])
self.box_meal_time.setObjectName('box_meal_time')
self.box_meal_time.view().setItemDelegate(QStyledItemDelegate(self))
self.box_meal_time.setStyleSheet('''
#box_meal_time {
font: 17px;
}
#box_meal_time ::item {
padding-bottom: 30px;
color: red;
}
''')
self.hbox_meal = QVBoxLayout()
self.hbox_meal.addWidget(self.box_meal_time)
self.main_box_meal_time = QVBoxLayout()
self.main_box_meal_time.addWidget(self.label_meal)
self.main_box_meal_time.addWidget(self.line_meal)
self.main_box_meal_time.addLayout(self.hbox_meal)
self.main_box_meal_time.addStretch(1)
self.setLayout(self.main_box_meal_time)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = PortionStepOne()
win.show()
sys.exit(app.exec_())
Скриншот:
