Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для DjonyCooper
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
PyQt5

Получение текста из QComboBox

17.06.2022, 15:04. Показов 1116. Ответов 4

Студворк — интернет-сервис помощи студентам
Доброго форумчане! Пишу не большую программу на PyQT5, столкнулся с вопросом, как вытянуть данные из QComboBox, нашел решение использовать .currentText или используя .currentTextChanged отправить данные в другую функцию, но не выходит его прикрутить, весь код большой, вставлю фрагменты:

Шаг 1: Выбираю и заполняю данные:

Python
1
2
3
4
5
6
7
8
9
10
    def _leTer(self):
        self._leTer = QComboBox(self)
        self._leTer.addItems(['Люберцы','Машково','Кетчерская','Сабурово'])
        self._leTer.setEditable(True)
        self._leTer.lineEdit().setAlignment(Qt.AlignCenter)
        self._leTer.setFont(QFont('Century Gothic', 10))
        self._leTer.setFixedSize(250, 20)
        self._leTer.currentTextChanged.connect(self._leTer_text)
 
        return self._leTer
Название: Скриншот 17-06-2022 145403.jpg
Просмотров: 22

Размер: 36.0 Кб

Шаг 2: По клику на кнопку "Создать", данные из QLineEdit собираются в self.base_line_edit:

Python
1
2
3
4
   def base_line_edit(self):
        self.base_line_edit = [self._leIP(), self._leName(), self._leTer()]
        self.check_db_ter = CheckThread()
        self.check_db_ter.mysignal.connect(self.signal_ter)
Шаг 3: Данные проверяются и в зависимости от проверки выдаются сообщения:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Проверка ввода данных
# Проверка ввода данных
    def check_input(funct):
        def wrapper(self):
            for line_edit in self.base_line_edit:
                if len(line_edit.text()) == 0:
                    self.showMessageBox('Внимание!',
                                        '<center><p style=font-size:7.2pt><i>Gandalf said: "You..shall not..pass!"</i></p></center>'
                                        '<center><br/><u style=font-size:10pt><FONT FACE="Arial"><b>Вы не заполнили поля</b></u></center></FONT>')
                    return
            funct(self)
        return wrapper
 
 
 
    @check_input
    def check(self):
        ip = self._leIP.text()
        name = self._leName.text()
        ter = self._leTer.text() 
        self.check_db_ter.thr_ter(ip, name, ter)
Но на этом месте дебагер выдает сообщение, что не может проверить это условие: "for line_edit in self.base_line_edit: if len(line_edit.text()) == 0:" потому что не может получить из QComboBox - текст. Я думал можно попробовать добавить в код описанный в Шаг 1, self._leTer.currentTextChanged.connect(s elf._leTer_text), сделать функцию которая будет содержать переменную, в которой будет определяться то, что выбранно в QComboBox, но я новичок и не доходит как это сделать. За любые мысли по решению вопроса буду благодарен.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2022, 15:04
Ответы с готовыми решениями:

Получение значений из QComboBox
Доброго вам вечера! Учусь программировать на python, решил сделать программу и не могу понять, как мне получить новые данные из...

Получение значения QComboBox
В таблице 2 столбца и не ограничееное чилсо строк, первый столбец это QComboBox. Как получить все выбранные элементы QComboBox...

QComboBox замена текста
Столкнулся с такой проблемой: есть QComboBox в котором отображается список для фильтрации модели, в списке имеется что-то типо &quot;не...

4
 Аватар для DjonyCooper
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
17.06.2022, 15:11  [ТС]
пробовал запихнуть в декоратор ter = self._leTer.currentText() - не работает
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
17.06.2022, 15:35
Лучший ответ Сообщение было отмечено DjonyCooper как решение

Решение

DjonyCooper, код - полная чушь, функции возвращают ссылки на себя, функции _leTer_text тут нет, из функции пытаются взять какие то не существующие атрибуты, что к чему?

Добавлено через 1 минуту
А, я увидел, ты определяешь метод, а потом создаешь атрибут QComboBox с таким же названием, удаляй, давай заново.

Добавлено через 5 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from PySide6 import QtWidgets, QtCore, QtGui
 
 
class Example(QtWidgets.QDialog):
 
    def __init__(self, parent: QtWidgets.QWidget = None) -> None:
        QtWidgets.QDialog.__init__(self, parent, QtCore.Qt.Dialog)
 
        self.l1 = QtWidgets.QLabel("Выберите территорию:")
        self.l1.setAlignment(QtCore.Qt.AlignCenter)
 
        self.cb1 = QtWidgets.QComboBox(self)
        self.cb1.addItems(['Люберцы','Машково','Кетчерская','Сабурово'])
        self.cb1.setEditable(True)
        self.cb1.lineEdit().setAlignment(QtCore.Qt.AlignCenter)
        self.cb1.currentTextChanged.connect(self.cb1TextChanged)
 
        layout = QtWidgets.QVBoxLayout(self)
        layout.addWidget(self.l1)
        layout.addWidget(self.cb1)
 
        if not parent:
            self.show()
 
    def cb1TextChanged(self, text: str) -> None:
        print(text, self.cb1.currentText())
 
app = QtWidgets.QApplication()
Example().exec()
1
 Аватар для DjonyCooper
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
17.06.2022, 15:36  [ТС]
Цитата Сообщение от Fudthhh Посмотреть сообщение
код - полная чушь
Ну какой есть. Вопрос не в оценке кода, а в том, как из одной функции содержащей QComboBox, вытащить в другую текстовое значение, да так, чтобы это значение записывалось в переменную и эту функцию потом можно было использовать
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
17.06.2022, 15:47
DjonyCooper, я скинул пример, дальше сам, на твоем примере невозможно подсказать, т.к. этот код не должен существовать не подлежит редактированию.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2022, 15:47
Помогаю со студенческими работами здесь

Зависимость одного qcombobox от другого qcombobox
У меня есть один qcombobox pitch = new QComboBox(this); pitch-&gt;addItems({&quot;0.400 mm&quot;, &quot;0.500 mm&quot;, &quot;0.600 mm&quot;}); Также есть...

QComboBox при создании item добавлять кроме текста действие
Работаю с mysql. Комбобокс заполняю &quot;именами&quot; QSqlQuery sc_dispatcher; sc_dispatcher.prepare(&quot;SELECT * FROM sc_dispatcher&quot;); ...

Получение текста
День добрый. Подскажите пожалуйста, как можно получить текст с сайта указанный стрелкой на скрине. Обычно получал если объект...

получение текста
возникла проблема такого содержания: есть класс с полями, хочу получить в классе событий текст полей первого класса, но текст получается...

Получение текста с vk.com
Блин люди добрые, помогите наконец, уже сколько бьюсь и все никак не получается сделать Нужно получить текст количества сообщений из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru