Форум сайта python.su
Добрый вечер. Как можно получить информацию окна или диалога. Допустим создал в окне виджеты например 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)
Офлайн
Ser5+во-первых, не вижу связи. Кто мешает дать уникальные имена типа name_1, name_2 и тд?
эти виджеты через цикл или через функцию,то есть имя у всех одинаковы.
Офлайн
FishHook
Понял. Попробую два списка создать в одном для имена для лабел а в другом для полей ввода. По 40 штук получается у меня.
Офлайн
FishHook
А можно как то по другому задать имя для label? А то как буду менять имя переменной через цикл,такого не бывает же. типа так что ль список=QtWidgets.QLabel(zag, parent=self.Dialog) потом для второго список=QtWidgets.QLabel(zag, parent=self.Dialog) это чушь какая то. Который выслал в предыдущем посте код,получить получу значение,но только последний это понятно. Я думал можно как то задать имя labely да и не только ему а и другим виджетам как то так типа label=QtWidgets.QLabel('имя лабела','текст', parent=self.Dialog) и по имени лабела получать значения,а не по имени переменной.
Офлайн
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()))
Офлайн