Нужна помощь с использованием QCheckBox и QComboBox в циклах
Есть программа на Python с использованием PyQt5.
Имеются 3 QComboBox:
ComboFizAkt- уровень физической активности, в котором 4 варианта выбора.ComboCel- цель (хочу похудеть, хочу улучшить фигуру и т.д.), в котором 3 варианта выбора.ComboTrenirovki- кол-во тренировок в неделю, в котором 7 вариантов выбора.
Также имеются 2 QCheckBox, которые отвечают за пол пользователя:
PolMuzh- мужской полPolZhen- женский пол
Хочу кое-что реализовать, нужна помощь.
Грубый пример: Если нажата PolMuzh и в ComboFizAkt выбран пункт "Преобладает физ. труд", вывести print(123)
# текст combobox'ов
self.LvlFizAkt.setText("Уровень физической активности:") # qlabel
self.ComboFizAkt.setItemText("Сидячий")
self.ComboFizAkt.setItemText("Слабый физ. труд")
self.ComboFizAkt.setItemText("Преобладает физ. труд")
self.ComboFizAkt.setItemText("Тяжёлый физ. труд")
self.ComboFizAkt.setItemText("Очень тяжёлый физ. труд")
self.ViborCeli.setText("Ваша цель:") # qlabel
self.ComboCel.setItemText("Ничего не хочу")
self.ComboCel.setItemText("Хочу похудеть")
self.ComboCel.setItemText("Хочу улучшить фигуру")
self.ComboCel.setItemText("Хочу набрать мыш. массу")
self.KolvoTrenirovok.setText("Кол-во тренировок в неделю:") # qlabel
self.ComboTrenirovki.setItemText("0")
self.ComboTrenirovki.setItemText("1")
self.ComboTrenirovki.setItemText("2")
self.ComboTrenirovki.setItemText("3")
self.ComboTrenirovki.setItemText("4")
self.ComboTrenirovki.setItemText("5")
self.ComboTrenirovki.setItemText("6")
self.ComboTrenirovki.setItemText("7+")
# функция, при которой, если PolMuzh включён, PolZhen выключается
self.PolMuzh.stateChanged.connect(self.selectCombo1)
self.PolZhen.stateChanged.connect(self.selectCombo2)
def selectCombo1(self, toggle):
if toggle == QtCore.Qt.Checked:
self.PolZhen.setEnabled(False)
else:
self.PolZhen.setEnabled(True)
# функция, при которой, если PolZhen включён, PolMuzh выключается
def selectCombo2(self, toggle):
if toggle == QtCore.Qt.Checked:
self.PolMuzh.setEnabled(False)
else:
self.PolMuzh.setEnabled(True)
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Если нажата PolMuzh и в ComboFizAkt выбран пункт "Преобладает физ. труд", вывести print(123)
При клике PolMuzh проверяйте текущее значение в комбобоксе (это можно сделать через методы: currentText, currentIndex, currentData)
Пример:
def selectCombo1(self, toggle):
if toggle == QtCore.Qt.Checked:
self.PolZhen.setEnabled(False)
if self.ComboFizAkt.currentText() == 'Преобладает физ. труд':
print(123)
else:
self.PolZhen.setEnabled(True)