Python 如何使QDIalog自动调整其内容大小?
我用的是PyQt4 我想在Python 如何使QDIalog自动调整其内容大小?,python,qt,pyqt,Python,Qt,Pyqt,我用的是PyQt4 我想在QDialog中显示QTableWidget,下面是我使用的代码: w = QDialog() layout = QGridLayout() tw = QTableWidget(w) ... code to setup tw ... layout.addWidget(tw, 0, 0) w.setLayout(layout) w.exec_(): 生成的QDialog工作正常,只是它仅显示QTableWidg
QDialog
中显示QTableWidget
,下面是我使用的代码:
w = QDialog()
layout = QGridLayout()
tw = QTableWidget(w)
... code to setup tw ...
layout.addWidget(tw, 0, 0)
w.setLayout(layout)
w.exec_():
生成的QDialog
工作正常,只是它仅显示QTableWidget
的一部分,但表中有许多列。因此,我必须拖动边框以调整其大小
有没有办法让QDialog一开始就自动调整到正确的大小
我试图使用adjustSize()
和setSizePolicy(QSizePolicy(QSizePolicy.expansing))
,但两者都不起作用
谢谢。将您的餐桌设置为:
tw.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
tw.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
tw.horizontalHeader().hide()
tw.verticalHeader().hide()
dialogWidth = tw.horizontalHeader().length() + 24
dialogHeight= tw.verticalHeader().length() + 24
w.setFixedSize(dialogWidth, dialogHeight)
填充后调整其大小:
tw.resizeRowsToContents()
tw.resizeColumnsToContents()
然后设置对话框的大小,如下所示:
tw.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
tw.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
tw.horizontalHeader().hide()
tw.verticalHeader().hide()
dialogWidth = tw.horizontalHeader().length() + 24
dialogHeight= tw.verticalHeader().length() + 24
w.setFixedSize(dialogWidth, dialogHeight)
对话框将自动调整到正确的大小,无论您有多少行或列,以及tableWidget单元格中有什么内容,您都可以尝试
w.resize(tw.width(),tw.height())
可能重复: