【问题标题】:Pyqt5 QGridlayout issue when using QTextEdit使用 QTextEdit 时的 Pyqt5 QGridlayout 问题
【发布时间】:2020-10-12 11:16:44
【问题描述】:

我想使用网格布局调整高度和宽度。

class MatchStepWidget(QWidget):
    def __init__(self,parent):

        super(MatchStepWidget,self).__init__(parent)
        self.initUI()

    def initUI(self):

        layout = QGridLayout(self)
        
        test = QTextEdit(self)
        bt_test = QPushButton(self)

        layout.addWidget(test,0,0,1,1)
        layout.addWidget(bt_test,1,0,1,1)
        # bt_test.hide()
        pass
if __name__ == "__main__":
    app = QApplication(sys.argv)
    myapp = MatchStepWidget(None)
    myapp.show()
    sys.exit(app.exec_())

我将按钮和文本编辑的行跨度和列跨度设置为相同。 但是 Textedit 覆盖的区域比按钮多 如何使用网格布局调整 Textedit 区域?

【问题讨论】:

    标签: python pyqt5 qlabel qtextedit qgridlayout


    【解决方案1】:

    默认的QPushButton不会垂直拉伸,如果你想改变它那么你必须修改QSizePolicy。此外,如果您希望 QPushButton 和 QTextEdit 的高度相同,则必须为布局的每一行设置拉伸因子:

    def initUI(self):
        test = QTextEdit()
        bt_test = QPushButton()
    
        layout = QGridLayout(self)
        layout.addWidget(test, 0, 0)
        layout.addWidget(bt_test, 1, 0)
    
        sp = bt_test.sizePolicy()
        sp.setVerticalPolicy(QSizePolicy.Minimum)
        bt_test.setSizePolicy(sp)
    
        layout.setRowStretch(0, 1)
        layout.setRowStretch(1, 1)

    【讨论】:

    • 感谢您的帮助,但它太复杂了。
    • 有什么简单的方法吗?
    • @daurenslambekov 就是这样。如果您了解布局如何计算尺寸,一切都不是复杂的,我建议您阅读 Qt 文档。
    猜你喜欢
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多