Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Pyqt добавление в QHBoxLayout циклом виджетов [RSS Feed]

#1 Сен. 20, 2014 22:14:06

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

Pyqt добавление в QHBoxLayout циклом виджетов

Добрый вечер! Не могу понять как добавить в сетку циклом экземпляры класса Single! Заранее спасибо за помошь!

class Single(QtGui.QFrame):
def __init__(self,parent=None):
super(Single, self).__init__(parent)
self.setStyleSheet('border:2px solid #866594;')
self.resize(331,65)
self.lable = QtGui.QLabel('ok', self)
self.show()

class FrameSingles(QtGui.QFrame):
def __init__(self,parent=None):
super(FrameSingles, self).__init__(parent)
self.resize(331,611)
self.move(19,60)
self.setStyleSheet('color:white;border:1px solid #866594;border-radius:5px;background:#d57285;')
self.hbox = QtGui.QHBoxLayout()
self.setLayout(self.hbox)

def data(self,group):
i=20
x=1
for key in group['items']:
i+=65
x+=1
z={}
z[x]=Single(self)
self.hbox.addChildWidget(z[x])

Отредактировано Omniwizard (Сен. 20, 2014 22:18:34)

Офлайн

#2 Сен. 20, 2014 22:50:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Pyqt добавление в QHBoxLayout циклом виджетов

Omniwizard
        for key in group['items']:
            i+=65
            x+=1
            z={}
            z[x]=Single(self)
            self.hbox.addChildWidget(z[x])
z={} не там создаётся.



Офлайн

#3 Сен. 20, 2014 23:06:35

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

Pyqt добавление в QHBoxLayout циклом виджетов

Все равно , создается, только один экземпляр , а мне надо чтобы создавались на весь цикл

Офлайн

#4 Сен. 20, 2014 23:38:23

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

Pyqt добавление в QHBoxLayout циклом виджетов

Omniwizard
Все равно , создается, только один экземпляр , а мне надо чтобы создавались на весь цикл
да как бы правильно ответили поп повуду z
но ещё много чего не понятно в методе data
зачем переменные key, i, и что за метод addChildWidget

Офлайн

#5 Сен. 21, 2014 00:14:55

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

Pyqt добавление в QHBoxLayout циклом виджетов

в data я передаю ответ от vk/api там список груп, потом я его разбераю. Так как тестирую я на выгрузки груп со своего вконтакта, для каждой группы я хотел создать отдельный класс, в который я в дальнейшем мог передавать: Название, ссылку на картинку и id. Я сначало попробовать списком сделать Qlist , но там возможностей не много , по этому решил отдельно создать Виджет под отдельную группу, так как можно его красиво оформить. Начал думать, как добавить на главный виджет, дочернии виджиты которые с помошью цикла созданны и добавлены на главный виджет.
Сейчас выводится только один виджет. И это странно.

Офлайн

#6 Сен. 21, 2014 00:30:13

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Pyqt добавление в QHBoxLayout циклом виджетов

Omniwizard
Все равно , создается, только один экземпляр , а мне надо чтобы создавались на весь цикл
Если поменял что-то, код сюда копируй.

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



Офлайн

#7 Сен. 21, 2014 01:23:40

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

Pyqt добавление в QHBoxLayout циклом виджетов

1) QHBoxLayout это не “сетка”, а горизонтальный компоновщик т.е. все виджеты будут располагаться горизонтально.
2) Вместо addChildWidget используй addWidget
3) Про z={} тебе уже сказали.



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

Офлайн

  • Начало
  • » GUI
  • » Pyqt добавление в QHBoxLayout циклом виджетов[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version