Python 如何使QDIalog自动调整其内容大小?

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

我用的是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
工作正常,只是它仅显示
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())
可能重复: