1

テーブルウィジェットを含むウィンドウがあります。私はpython/pyqt4を使用しています。ウィンドウを最大化すると、テーブルの列のサイズも変更されて幅が広くなります。これが私のコードの一部です。これを達成するために何を追加できますか?

self.table=QTableWidget()
self.tableLabel.setBuddy(self.tableLabel)
self.table.setColumnCount(len(headers))
self.table.setHorizontalHeaderLabels(headers)
self.table.setMinimumSize(450,400)
self.table.isFullScreen()
self.table.setAlternatingRowColors(True)
self.addButton=QPushButton("New")
layout=QGridLayout()
layout.addWidget(self.tableLabel,0,0)
layout.addWidget(self.table,1,0,5,6)
layout.addWidget(self.addButton,7,5)
self.setLayout(layout)
self.setWindowTitle("Table")
4

2 に答える 2

1

これを手動で行う 1 つの方法は、 がchangeEvent含まれるウィジェットの を再実装するQTableWidgetことです。それ以外の場合はself.table.horizontalHeader().setResizeMode(QtGui.QHeaderView.Stretch)、ウィジェットのサイズが変更されるたびに各列を自動的に拡大するオプションを使用できます。ここでの例:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import sip
sip.setapi('QString', 2)
sip.setapi('QVariant', 2)

from PyQt4 import QtGui, QtCore, QtWebKit, QtNetwork

class myWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(myWindow, self).__init__(parent)

        self.setWindowTitle("Table")

        headers = [str(x) for x in range(6)]

        self.table = QtGui.QTableWidget()
        self.table.setColumnCount(len(headers))
        self.table.setHorizontalHeaderLabels(headers)
        self.table.setMinimumSize(450,400)
        self.table.setAlternatingRowColors(True)
        self.table.horizontalHeader().setResizeMode(QtGui.QHeaderView.Stretch)

        self.setCentralWidget(self.table)

    def changeEvent(self, event):
        if event.type() == QtCore.QEvent.WindowStateChange: 
            print "The window state changed" # Here you can resize the columns manually

        return super(myWindow, self).changeEvent(event)


if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('myWindow')

    main = myWindow()
    main.show()

    sys.exit(app.exec_())
于 2013-01-03T19:19:53.723 に答える
0

このコードをテーブルに使用します

self.table.horizontalHeader().setResizeMode(QtGui.QHeaderView.Stretch)
于 2016-04-27T18:06:28.143 に答える