Как настроить размер виджета в горизонтальном макете - PullRequest
2 голосов
/ 02 марта 2020

Я хочу, чтобы все мои виджеты менялись по длине (по горизонтали) при увеличении окна GUI. Прямо сейчас, только редактирование строки изменяет размер, когда я увеличиваю окно. Больше всего на свете я хочу, чтобы моя кнопка и поле со списком были длиннее.

import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QGridLayout, QWidget, QListWidget, QLineEdit, QHBoxLayout, QPushButton


class Window(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        centralWidget = QWidget()
        self.setCentralWidget(centralWidget)
        self.Search_Bar = QLineEdit(placeholderText="Search")
        self.Button = QPushButton('button')
        layout = QHBoxLayout(centralWidget)
        layout.addWidget(self.Button)
        layout.addWidget(self.Search_Bar)



if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

1 Ответ

1 голос
/ 02 марта 2020

Существует 2 возможных решения:

  • Установите такое же растяжение, добавив виджеты в макет:

    layout.addWidget(self.Button, <b>stretch=1</b>)
    layout.addWidget(self.Search_Bar, <b>stretch=1</b>)
  • Установить QSizePolicy::Expanding на горизонтальной составляющей кнопки sizePolicy:

    sp = self.Button.sizePolicy()
    sp.setHorizontalPolicy(QtWidgets.QSizePolicy.Expanding)
    self.Button.setSizePolicy(sp)
...