使用 QTextEdit 时 Pyqt5 QGridlayout 问题
Pyqt5 QGridlayout issue when using QTextEdit
我想使用网格布局调整高度和宽度。
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 区域?
默认的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)
<b>sp = bt_test.sizePolicy()
sp.setVerticalPolicy(QSizePolicy.Minimum)
bt_test.setSizePolicy(sp)
layout.setRowStretch(0, 1)
layout.setRowStretch(1, 1)</b>
我想使用网格布局调整高度和宽度。
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 区域?
默认的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)
<b>sp = bt_test.sizePolicy()
sp.setVerticalPolicy(QSizePolicy.Minimum)
bt_test.setSizePolicy(sp)
layout.setRowStretch(0, 1)
layout.setRowStretch(1, 1)</b>