Как установить автоматическое изменение размера дочерних окон относительно его родительского окна в PyQt4? - PullRequest
1 голос
/ 06 января 2012

У моего приложения pyQt4 есть главное диалоговое окно, и в нем находится элемент управления вкладкой контента, а затем подкомпонент.

То, что я хочу, это когда пользователь нажимает на кнопку максимизации или изменяет размер главного окна, затем размер элемента управления вкладкой, а также его компонентместоположения должны быть автоматически обновлены.

как свойства с изменяемым размером по горизонтали, изменяемого размера по вертикали в приложении Java Swing.

Ответы [ 2 ]

2 голосов
/ 06 января 2012

Если вы создали свой диалог в Qt Designer, то убедитесь, что вы правильно установили все макеты.

Для начала щелкните правой кнопкой мыши каждую вкладку виджета со вкладками и выберите в меню Layout/Layout in a Grid. На панели инструментов также есть кнопка, которая делает то же самое (значок представляет собой сетку из маленьких синих квадратов).

После того, как вы установили макет на каждой вкладке, сделайте то же самое для основной формы.

Обратите внимание, что иногда проще выбрать и щелкнуть правой кнопкой мыши элементы в инспекторе объектов, чем сама форма. Инспектор объектов также показывает значок рядом с каждым элементом формы, которому был задан макет.

После того, как вы настроили все макеты, используйте Form/Preview..., чтобы убедиться, что все работает так, как вы ожидали.

1 голос
/ 06 января 2012

Используйте макет, например QHBoxLayout или QVBoxLayout.

from PySide.QtCore import *
from PySide.QtGui import *

app = QApplication([])

win = QMainWindow()

frame = QFrame()
win.setCentralWidget(frame)

layout = QHBoxLayout()
frame.setLayout(layout)

layout.addWidget(QPushButton("Expanding Button"))
layout.addWidget(QPushButton("Another Expanding Button"))

win.show()

app.exec_()

Это добавит два QPushButton s к QMainWindow в пределах QHBoxLayout. Это означает, что они будут рядом друг с другом, и каждый из них заполнит свою половину окна. QPushButton s заполняются только по горизонтали (если вы не установили политику размера), но QTabWidget заполнит все доступное пространство.

...