【问题标题】:How to make QDIalog auto-resize to the size of its content?如何使 QDIalog 自动调整到其内容的大小?
【发布时间】:2011-12-22 23:25:40
【问题描述】:

我正在使用 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.Expanding)),但它们都不起作用。

谢谢。

【问题讨论】:

标签: python qt pyqt


【解决方案1】:

这样设置你的桌子:

tw.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
tw.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
tw.horizontalHeader().hide()          
tw.verticalHeader().hide()

填充后调整大小:

tw.resizeRowsToContents()
tw.resizeColumnsToContents() 

然后像这样设置对话框的大小:

dialogWidth = tw.horizontalHeader().length() + 24
dialogHeight= tw.verticalHeader().length()   + 24
w.setFixedSize(dialogWidth, dialogHeight)

无论您有多少行或多少列,以及 tableWidget 单元格内部有什么,对话框都会自动调整到正确的大小

【讨论】:

    【解决方案2】:

    你可以试试

           w.resize(tw.width(),tw.height())
    

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 2015-02-13
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      相关资源
      最近更新 更多