Seite 1 von 1

QTableWidget column autosize

Verfasst: Freitag 13. Februar 2009, 20:01
von webglider
Hallo.

Wie kann ich ein QTableWidget so erstellen, dass sich die Spalten automatisch an den vorhandenen Platz im Fenster anpassen?

Code: Alles auswählen

# -*- coding: cp1252 -*-

import sys
from PyQt4 import QtGui, QtCore

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.resize(350, 250)
        self.setWindowTitle(appname)

        #textEdit = QtGui.QTextEdit()
        
        headers = ["KUNDE", "STANDORT", "PRODUKT", "VERSION", "BEMERKUNG"]
        dataGrid = QtGui.QTableWidget()
        dataGrid.setRowCount(15)
        dataGrid.setColumnCount(len(headers))
        dataGrid.setAlternatingRowColors(True)
        dataGrid.setHorizontalHeaderLabels(headers)
        
        self.setCentralWidget(dataGrid)

        exit = QtGui.QAction(QtGui.QIcon('res/toolbar/exit.png'), 'Beenden', self)
        exit.setShortcut('Ctrl+Q')
        exit.setStatusTip(appname + ' beenden')
        self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))

        self.statusBar()

        menubar = self.menuBar()
        file = menubar.addMenu('&Datei')
        file.addAction(exit)

        toolbar = self.addToolBar('Beenden')
        toolbar.addAction(exit)

appname = "PyQT Table"
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
Michael

Verfasst: Samstag 14. Februar 2009, 16:26
von webglider
Zur Veranschaulichung - So sieht das GUI aus:

Bild

Hat jemand eine Idee, wie ich die Spalten einrichte, damit sie immer 100% der Breite des verfügbaren PLatzes einnehmen?

Michael

Verfasst: Sonntag 15. Februar 2009, 16:48
von lunar
Qt selbst scheint das nicht zu können, aber das ist relativ einfach zu implementieren, zumindest in naiver Weise. Mein Versuch kann dir als Beispiel dienen. Die naive Lösung funktioniert zwar ganz gut, muss aber noch erweitert werden, wenn du z.B. auch das Entfernen von Spalten unterstützen willst. Zudem wäre es sinnvoll, die SizeHints der Spalten zu beachten, aber das lässt sich ja auch später noch einbauen.

Verfasst: Sonntag 15. Februar 2009, 16:58
von webglider
Klasse, danke.

Dein Beispiel funktioniert so wie ich mir das vorstelle, werde jetzt mal versuchen, dass in meiner Anwendung umzusetzen.