#python #qt #pyqt #qwidget
#python #qt #pyqt #qwidget
Вопрос:
Я пишу небольшое приложение Qt на Python. Я создал QMainWindow, в котором есть QGridLayout. В каждую сетку я добавляю виджет QTextBrowser. Я хочу, чтобы левая часть моей сетки была не больше 25% окна. Итак, у меня будет два QTextBrowsers: один составляет 25% от ширины окна, а другой — 75% от ширины окна. Как я могу это сделать? Спасибо!
Ответ №1:
Вы можете указать относительную ширину, задав каждой ячейке растяжение с помощью setStretch(). Они получат размеры, пропорциональные заданным отрезкам. Вот простой пример, который делает правый виджет в 3 раза больше, чем левый виджет.
import sys
from PyQt4 import QtGui
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
Q = QtGui.QWidget()
H = QtGui.QHBoxLayout()
H.addWidget(QtGui.QTextBrowser())
H.setStretch(0,1)
H.addWidget(QtGui.QTextBrowser())
H.setStretch(1,3)
Q.setLayout(H)
Q.show()
app.exec_()
Но имейте в виду, что виджеты по умолчанию имеют минимальные размеры. Таким образом, они могут уменьшаться ниже этого. Если вы также хотите изменить это поведение, рассмотрите возможность установки минимальных размеров по своему вкусу.