Найти - Пользователи
Полная версия: Pyqt добавление в QHBoxLayout циклом виджетов
Начало » GUI » Pyqt добавление в QHBoxLayout циклом виджетов
1
Omniwizard
Добрый вечер! Не могу понять как добавить в сетку циклом экземпляры класса 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])
py.user.next
Omniwizard
        for key in group['items']:
            i+=65
            x+=1
            z={}
            z[x]=Single(self)
            self.hbox.addChildWidget(z[x])
z={} не там создаётся.
Omniwizard
Все равно , создается, только один экземпляр , а мне надо чтобы создавались на весь цикл
vrabey
Omniwizard
Все равно , создается, только один экземпляр , а мне надо чтобы создавались на весь цикл
да как бы правильно ответили поп повуду z
но ещё много чего не понятно в методе data
зачем переменные key, i, и что за метод addChildWidget
Omniwizard
в data я передаю ответ от vk/api там список груп, потом я его разбераю. Так как тестирую я на выгрузки груп со своего вконтакта, для каждой группы я хотел создать отдельный класс, в который я в дальнейшем мог передавать: Название, ссылку на картинку и id. Я сначало попробовать списком сделать Qlist , но там возможностей не много , по этому решил отдельно создать Виджет под отдельную группу, так как можно его красиво оформить. Начал думать, как добавить на главный виджет, дочернии виджиты которые с помошью цикла созданны и добавлены на главный виджет.
Сейчас выводится только один виджет. И это странно.
py.user.next
Omniwizard
Все равно , создается, только один экземпляр , а мне надо чтобы создавались на весь цикл
Если поменял что-то, код сюда копируй.

Собери какой-нибудь минимальный пример, чтобы мы могли его запустить у себя.
Rodegast
1) QHBoxLayout это не “сетка”, а горизонтальный компоновщик т.е. все виджеты будут располагаться горизонтально.
2) Вместо addChildWidget используй addWidget
3) Про z={} тебе уже сказали.
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