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

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

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

Author24 — интернет-сервис помощи студентам
Доброго форумчане! Пишу не большую программу на 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(self._leTer_text), сделать функцию которая будет содержать переменную, в которой будет определяться то, что выбранно в QComboBox, но я новичок и не доходит как это сделать. За любые мысли по решению вопроса буду благодарен.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2022, 15:04
Ответы с готовыми решениями:

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

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

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

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

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

4
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 134
17.06.2022, 15:11  [ТС] 2
пробовал запихнуть в декоратор ter = self._leTer.currentText() - не работает
0
Модератор
Эксперт Python
2691 / 1597 / 513
Регистрация: 21.02.2017
Сообщений: 4,211
Записей в блоге: 1
17.06.2022, 15:35 3
Лучший ответ Сообщение было отмечено 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
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 134
17.06.2022, 15:36  [ТС] 4
Цитата Сообщение от Fudthhh Посмотреть сообщение
код - полная чушь
Ну какой есть. Вопрос не в оценке кода, а в том, как из одной функции содержащей QComboBox, вытащить в другую текстовое значение, да так, чтобы это значение записывалось в переменную и эту функцию потом можно было использовать
0
Модератор
Эксперт Python
2691 / 1597 / 513
Регистрация: 21.02.2017
Сообщений: 4,211
Записей в блоге: 1
17.06.2022, 15:47 5
DjonyCooper, я скинул пример, дальше сам, на твоем примере невозможно подсказать, т.к. этот код не должен существовать не подлежит редактированию.
2
17.06.2022, 15:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2022, 15:47
Помогаю со студенческими работами здесь

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

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

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

Получение текста из TextInput
в файле .kv определен TextInput с id: text1. нужно в фале питона получить текст из него как это...

Получение текста сообщения
Есть такой код: function read() { $result =...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru