Могу ли я сделать так, чтобы виджет занимал более одного столбца в PyQt

#python #pyqt

#python #pyqt

Вопрос:

Я бы хотел что-то вроде этого:

 self.name_textbox.setColumnSpan(2)
  

Уже пробовал поместить все остальное в один гигантский столбец.
Не сработало так хорошо.

Комментарии:

1. Не могли бы вы пояснить, что вы имеете в виду? Вы имеете в виду охват внутри QGridLayout?

2. Да, это то, что я имел в виду

Ответ №1:

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

Чтобы изменить охват виджета, который уже находится в макете, просто вызовите addWidget() снова с новым значением span .

 class Test(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        layout = QtWidgets.QGridLayout(self)
        expandButton = QtWidgets.QPushButton('Expand')
        layout.addWidget(expandButton)
        expandButton.clicked.connect(self.expand)
        collapseButton = QtWidgets.QPushButton('Collapse')
        layout.addWidget(collapseButton, 0, 1)
        collapseButton.clicked.connect(self.collapse)
        self.lineEdit = QtWidgets.QLineEdit()
        layout.addWidget(self.lineEdit)

    def expand(self):
        self.layout().addWidget(self.lineEdit, 1, 0, 1, 2)

    def collapse(self):
        self.layout().addWidget(self.lineEdit, 1, 0, 1, 1)