Найти - Пользователи
Полная версия: Растянуть QTableView по высоте
Начало » GUI » Растянуть QTableView по высоте
1
Red_baron
Здравствуйте! Вопрос, наверное, простой, но я уже 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
Заранее спасибо.
reclosedev
Проблема скорее всего в использовании 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? Судя по скриншоту интерфейс достаточно сложный. Дизайнер очень сильно упрощает и ускоряет разработку.
Red_baron
reclosedev
Проблема скорее всего в использовании FormLayout не по назначению.

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

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

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