Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Создние и отображение Label в экземпляре класса [RSS Feed]

#1 Март 28, 2016 10:41:54

babai
Зарегистрирован: 2015-12-25
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Создние и отображение Label в экземпляре класса

Есть класс создания окна. Хочу добавить Label в экземпляр класса, делаю это с помощью setattr, а как сделать чтобы чтобы этот созданный атрибут отобразился в этом окне? У меня отображение компонентов в этом классе сделано с помощью QGridLayout.

        his_win = history.HistoryWin(window1)
        setattr(his_win, "label3", QtGui.QLabel("Проверка", self))
        print(getattr(his_win, "label3"))

Сам класс

class HistoryWin(QtGui.QDialog):
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self.setWindowTitle("Поиск и редактирование")
        self.resize(620, 440)
        self.label = QtGui.QLabel(self)
        stroka = "Дата и время изменения\tВерсия ОС и ПО\tОрганизация и место установки\tСтоимость\tСтатус"
        self.label.setAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignCenter)
        self.label1 = QtGui.QLabel("'%s'" % stroka.center(20), self)
        self.label2 = QtGui.QLabel(self)
        self.label2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
        grid = QtGui.QGridLayout()
        grid.addWidget(self.label, 0, 0, 1, 1)
        grid.addWidget(self.label1, 1, 0, 1, 1)
        grid.addWidget(self.label2, 2, 0, 50, 1)
        
        self.setLayout(grid)

Офлайн

#2 Март 28, 2016 11:29:12

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2751
Репутация: +  184  -
Профиль   Отправить e-mail  

Создние и отображение Label в экземпляре класса

Самый правильный ответ на этот вопрос - “никак” ибо так даже я не извращаюсь. Но если очень хочется, то возможно всё:

import sys
from PySide import QtGui
from PySide import QtCore
class HistoryWin(QtGui.QDialog):
	def __init__(self, parent=None):
		QtGui.QDialog.__init__(self, parent)
		self.setWindowTitle(u"Поиск и редактирование")
		self.resize(620, 440)
		self.label = QtGui.QLabel(self)
		stroka = u"Дата и время изменения\tВерсия ОС и ПО\tОрганизация и место установки\tСтоимость\tСтатус"
		self.label.setAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignCenter)
		self.label1 = QtGui.QLabel("'%s'" % stroka.center(20), self)
		self.label2 = QtGui.QLabel(self)
		self.label2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
		self.grid = QtGui.QGridLayout()
		self.grid.addWidget(self.label, 0, 0, 1, 1)
		self.grid.addWidget(self.label1, 1, 0, 1, 1)
		self.grid.addWidget(self.label2, 2, 0, 50, 1)
		self.setLayout(self.grid)
if __name__ == "__main__":
	app = QtGui.QApplication(sys.argv)
	win = HistoryWin()
	label = QtGui.QLabel(u"Проверка", win)
	setattr(win, "label3", label)
	win.grid.addWidget(win.label3, 0, 0, 1, 1)
	win.show()
	sys.exit(app.exec_())



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Март 28, 2016 14:43:33

babai
Зарегистрирован: 2015-12-25
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Создние и отображение Label в экземпляре класса

Как все просто оказывается , спасибо, завтра попробую

Офлайн

#4 Март 29, 2016 03:18:11

babai
Зарегистрирован: 2015-12-25
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Создние и отображение Label в экземпляре класса

Да, работает) Вы назвали это извращением, а как тогда было бы правильно?) А то я только учусь)

Офлайн

#5 Март 29, 2016 11:00:59

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2751
Репутация: +  184  -
Профиль   Отправить e-mail  

Создние и отображение Label в экземпляре класса

Правильно пользоваться дизайнером, ну или хотя-бы размещать виджеты в конструкторе. А если будешь подцеплять их через seaatr то сам потом концов не найдёшь.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Март 29, 2016 11:02:51)

Офлайн

  • Начало
  • » GUI
  • » Создние и отображение Label в экземпляре класса[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version