Найти - Пользователи
Полная версия: Получение информации из окна
Начало » GUI » Получение информации из окна
1
Ser5+
Добрый вечер. Как можно получить информацию окна или диалога. Допустим создал в окне виджеты например Label или Line. Если их мало то я вручную прописал к каждому свое имя и получаю значения из них по имени. А вот я сейчас создал эти виджеты через цикл или через функцию,то есть имя у всех одинаковы.Вот в таком случае как их мне получить значения? Думал как-то можно перечислить все элементы в окне и узнать как обратиться к нужному элементу.

Допустим такой у меня пример
Лучше написать одну строчку,чем для каждого по 4 строчки,но как обратиться к ним теперь не знаю.

 #Функция Label и LineEdit
self.label('Код орг.:',x1=20,y1=40,x11=100,y11=20,x2=120,y2=40,x22=100,y22=20)
self.label('Наим.:',x1=250,y1=40,x11=100,y11=20,x2=300,y2=40,x22=200,y22=20)
self.label('Наим.полное:',x1=20,y1=70,x11=100,y11=20,x2=120,y2=70,x22=600,y22=20)
def label(self,zag,x1,y1,x11,y11,x2,y2,x22,y22):
        Label = QtWidgets.QLabel(zag, parent=self.Dialog)
        Label.setGeometry(x1,y1,x11,y11)
        Line = QtWidgets.QLineEdit(parent=self.Dialog)
        Line.setGeometry(x2,y2,x22,y22)
FishHook
Ser5+
эти виджеты через цикл или через функцию,то есть имя у всех одинаковы.
во-первых, не вижу связи. Кто мешает дать уникальные имена типа name_1, name_2 и тд?
во-вторых, ну раз элементов много и они одинаковые, то поместите же их в список. Будете получать из из списка по индексу, хотя бы опять в цикле.
Ser5+
FishHook
Понял. Попробую два списка создать в одном для имена для лабел а в другом для полей ввода. По 40 штук получается у меня.
Ser5+
FishHook
А можно как то по другому задать имя для label? А то как буду менять имя переменной через цикл,такого не бывает же. типа так что ль список=QtWidgets.QLabel(zag, parent=self.Dialog) потом для второго список=QtWidgets.QLabel(zag, parent=self.Dialog) это чушь какая то. Который выслал в предыдущем посте код,получить получу значение,но только последний это понятно. Я думал можно как то задать имя labely да и не только ему а и другим виджетам как то так типа label=QtWidgets.QLabel('имя лабела','текст', parent=self.Dialog) и по имени лабела получать значения,а не по имени переменной.
Ser5+
FishHook
А все решил я проблему. вот как делается если кому пригодится.Вопрос закрыт.
 self.widgets = []
#Функция Label и LineEdit
self.label('Код орг.:',x1=20,y1=40,x11=100,y11=20,x2=120,y2=40,x22=100,y22=20)
self.label('Наим.:',x1=250,y1=40,x11=100,y11=20,x2=300,y2=40,x22=200,y22=20)
self.label('Наим.полное:',x1=20,y1=70,x11=100,y11=20,x2=120,y2=70,x22=600,y22=20)
self.label('Код группы орг.:',x1=20,y1=130,x11=100,y11=20,x2=120,y2=130,x22=100,y22=20)
def label(self,zag,x1,y1,x11,y11,x2,y2,x22,y22):
        self.Label = QtWidgets.QLabel(zag, parent=self.Dialog)
        self.Label.setGeometry(x1,y1,x11,y11)
        self.Line = QtWidgets.QLineEdit(parent=self.Dialog)
        self.Line.setGeometry(x2,y2,x22,y22)
        #Запишем в список значения
        self.widgets.append((self.Label, self.Line))
#Получаем все значения
for self.Label, self.Line in self.widgets:
     print('{} {}'.format(self.Label.text(), self.Line.text()))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB