Как принудительно изменить размер макета с помощью страницы мастера - PullRequest
0 голосов
/ 03 июля 2019

У меня есть страница мастера с двумя таблицами и полными кнопок.Части полос прокрутки моих таблиц и нижние кнопки остаются скрытыми, и мне нужно расширить окно, когда эта страница будет достигнута.Я не уверен, что общая схема макета, которая у меня есть для этой страницы, просто неправильно настроена.

Как можно изменить размер макета и виджетов в макете вместе с окном?

IЯ использую PySide2 на Python 3.7.Я попытался установить макет как фиксированный размер вместе с чтением нескольких других потоков по этому вопросу, но я не могу воспроизвести те же результаты, чтобы виджеты помещались в пределах окна / при изменении размера окна они масштабировались вместе с ним.

class Resolution_Page(QtWidgets.QWizardPage):
    def __init__(self, parent=None):
        super(Resolution_Page, self).__init__(parent)

        self.Resolution_Wizard_Page = QtWidgets.QWizardPage()
        self.Resolution_Wizard_Page.setObjectName("Resolution_Wizard_Page")
        self.ResolutionTable = QtWidgets.QTableWidget()
        self.ResolutionTable.setObjectName('ResolutionTable')

        self.SearchTable = QtWidgets.QTableWidget()
        self.SearchTable.setObjectName('SearchTable')
        self.SearchTable.setColumnCount(2)
        self.SearchTable.setHorizontalHeaderLabels(['Searched Field', 'Searched Value'])
        self.SearchTable.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch)
        self.SearchTable.setSortingEnabled(False)
        self.SearchTable.setEnabled(True)
        self.SearchTable.setRowCount(0)

        self.next_resolution_button = QtWidgets.QPushButton('Next Resolution')
        self.next_resolution_button.setObjectName('next_resolution_button')
        self.next_resolution_button.setMaximumWidth(200)

        self.next_search_button = QtWidgets.QPushButton('Next Page')
        self.next_search_button.setObjectName('next_search_button')

        self.resolve_button = QtWidgets.QPushButton('Resolve Selection')
        self.resolve_button.setEnabled(False)
        self.resolve_button.setObjectName('resolve_button')

        self.Search = QtWidgets.QPushButton('Search')
        self.Search.setObjectName('Search')

        self.previous_search_result_button = QtWidgets.QPushButton('Previous Page')
        self.previous_search_result_button.setObjectName('previous_search_result_button')

        self.previous_resolution_button = QtWidgets.QPushButton('Previous Resolution')
        self.previous_resolution_button.setObjectName('previous_resolution_button')
        self.previous_resolution_button.setMaximumWidth(200)


        self.SearchTable.setMinimumWidth(300)

        layout = QtWidgets.QWidget(self)
        root_layout = QtWidgets.QVBoxLayout(layout)
        central_tables = QtWidgets.QHBoxLayout()
        middle_buttons = QtWidgets.QVBoxLayout()
        bottom_buttons = QtWidgets.QHBoxLayout()
        middle_buttons.addWidget(self.previous_search_result_button)
        middle_buttons.addWidget(self.Search)
        middle_buttons.addWidget(self.next_search_button)

        central_tables.addWidget(self.SearchTable, stretch=1)
        central_tables.addLayout(middle_buttons)
        central_tables.addWidget(self.ResolutionTable, stretch=1)

        bottom_buttons.addWidget(self.previous_resolution_button)
        bottom_buttons.addWidget(self.resolve_button)
        bottom_buttons.addWidget(self.next_resolution_button)
        bottom_buttons.setAlignment(QtCore.Qt.AlignBottom)

        root_layout.addLayout(central_tables)
        root_layout.addLayout(bottom_buttons)
        layout.setFixedSize(1200,600)

1 Ответ

0 голосов
/ 05 июля 2019

Вы должны привязать свой верхний виджет к основному макету и не использовать фиксированный размер для основного виджета

  1. Создайте основной макет и добавьте к нему свой виджет:
main_layout = QtWidgets.QVBoxLayout(self)
#layout = QtWidgets.QWidget(self)
layout = QtWidgets.QWidget()
main_layout.addWidget(layout)
  1. удалить эту строку:
layout.setFixedSize(1200,600)
...