Уведомления

Группа в Telegram: @pythonsu

#1 Март 4, 2013 10:34:53

Red_baron
Зарегистрирован: 2012-08-30
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Растянуть QTableView по высоте

Здравствуйте! Вопрос, наверное, простой, но я уже Google замучил.
Необходимо растянуть QTableView по высоте всей формы.
Как представлено на прикрепленном рисунке.
Код верстки:

#Оновное выравнивание
        self.boxAnalizTZ.hbox1 = QtGui.QHBoxLayout(self.boxAnalizTZ)
        #Выравнивание левой колонки
        self.boxAnalizTZ.formlayout1 = QtGui.QFormLayout()
        self.boxAnalizTZ.hbox1.addLayout(self.boxAnalizTZ.formlayout1)
        self.boxAnalizTZ.formlayout1.addRow("Название проекта", self.form1)
        self.boxAnalizTZ.formlayout1.addRow("Описание проекта", self.form2)        
        self.boxAnalizTZ.formlayout1.addRow(self.radioboxSistema)
        #Выравнивание правой колонки        
        self.boxAnalizTZ.formlayout2 = QtGui.QFormLayout()
        self.boxAnalizTZ.hbox1.addLayout(self.boxAnalizTZ.formlayout2)
        self.boxAnalizTZ.formlayout2.addRow(self.radioboxBoepripas)
        self.boxAnalizTZ.formlayout2.addRow(self.label1)
        #Соотношение левой и правой колонки 1:1
        self.boxAnalizTZ.hbox1.setStretchFactor(self.boxAnalizTZ.formlayout1, 1)
        self.boxAnalizTZ.hbox1.setStretchFactor(self.boxAnalizTZ.formlayout2, 1)
        #Верстка в группе Система
        self.boxAnalizTZ.vbox1 = QtGui.QGridLayout(self.radioboxSistema)
        self.boxAnalizTZ.vbox1.addWidget(self.label2, 0, 0)
        self.boxAnalizTZ.vbox1.addWidget(self.listSistema, 0, 1)
        self.boxAnalizTZ.vbox1.addWidget(self.buttonAddListSistema, 0, 2)
        self.boxAnalizTZ.vbox1.addWidget(self.viewSistema, 1, 0, 1, 3)
        self.boxAnalizTZ.vbox1.addWidget(self.buttonAddParamSistema, 2, 0, 1, 3)
        #Верстка в группе Боеприпас
        self.boxAnalizTZ.vbox2 = QtGui.QGridLayout(self.radioboxBoepripas)
        self.boxAnalizTZ.vbox2.addWidget(self.label3, 0, 0)
        self.boxAnalizTZ.vbox2.addWidget(self.listBoepripas, 0, 1)
        self.boxAnalizTZ.vbox2.addWidget(self.buttonAddListBoepripas, 0, 2)
        self.boxAnalizTZ.vbox2.addWidget(self.viewBoepripas, 1, 0, 1, 3)
        self.boxAnalizTZ.vbox2.addWidget(self.buttonAddParamBoepripas, 2, 0, 1, 3)

self - это mainwindow
boxAnalizTZ - QWidget
Заранее спасибо.

Отредактировано Red_baron (Март 4, 2013 10:37:42)

Прикреплённый файлы:
attachment 04-03-2013 12-30-13.jpg (113,8 KБ)

Офлайн

#2 Март 4, 2013 18:43:45

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Растянуть QTableView по высоте

Проблема скорее всего в использовании FormLayout не по назначению.

Лучше сделать VboxLayout в котором будет FormLayout (только с полями) и GroupBox (или что-то другое)
с вертикальной sizePolicy - Expanding

sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding)

Пример в QtDesigner.
https://dl.dropbox.com/u/3043766/no_formlayout.ui

Кстати, почему не используете Qt Designer? Судя по скриншоту интерфейс достаточно сложный. Дизайнер очень сильно упрощает и ускоряет разработку.

Офлайн

#3 Март 5, 2013 13:11:10

Red_baron
Зарегистрирован: 2012-08-30
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Растянуть QTableView по высоте

reclosedev
Проблема скорее всего в использовании FormLayout не по назначению.

Действительно, если использовать VboxLayout, то все растягивается нормально, даже без sizePolicy.

Большое спасибо за помощь. Только на этом форуме быстро помогают в области Python'a и PyQt.

reclosedev
почему не используете Qt Designer
Когда начал верстать, только осваивая Python и Qt, было желание разобраться в работе компонентов.
Другие вкладки либо скопирую (они похожи по структуре), либо уже буду делать в дизайнере.

Отредактировано Red_baron (Март 5, 2013 13:11:40)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version