2016-12-25 77 views
-1

我已經定義是這樣我QTableWidget的:如何將佈局添加到pyqt中的Qtablewidget?

def __init__(self, parent = None): 
     super(Window, self).__init__(parent) 
     QtGui.QWidget.__init__(self) 
     QtGui.QTableWidget.setMinimumSize(self, 500, 500) 
     QtGui.QTableWidget.setWindowTitle(self, "Custom table widget") 
     self.table = QtGui.QTableWidget() 
     rowf = 3 
     self.table.setColumnCount(3) 
     self.table.setRowCount(rowf) 
     self.table.setHorizontalHeaderItem(0, QtGui.QTableWidgetItem("col1")) 
     self.table.setHorizontalHeaderItem(1, QtGui.QTableWidgetItem("col2")) 
     self.table.setHorizontalHeaderItem(2, QtGui.QTableWidgetItem("col3")) 
     self.table.verticalHeader().hide() 

     header = self.table.horizontalHeader() 
     header.setResizeMode(0, QtGui.QHeaderView.ResizeToContents) 
     header.setResizeMode(1, QtGui.QHeaderView.ResizeToContents) 
     header.setResizeMode(2, QtGui.QHeaderView.ResizeToContents) 

     self.buttonBox = QtGui.QDialogButtonBox(self) 
     self.buttonBox.setOrientation(QtCore.Qt.Horizontal) 
     self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Ok) 

     self.verticalLayout = QtGui.QVBoxLayout(self) 
     self.verticalLayout.addWidget(self.table) 
     self.verticalLayout.addWidget(self.buttonBox) 

     self.buttonBox.accepted.connect(self.close) 
     self.buttonBox.rejected.connect(self.close) 

我想我的最終結果看起來類似於下面的PIC但現在的東西,我想要添加的佈局不安靜的工作我喜歡它的方式。我是pyqt的初學者。我之前在qlistview上試過這個佈局,它運行良好。

enter image description here

回答

0

添加{your table}.table.horizontalHeader().setStretchLastSection(True)和/或{your table}.verticalHeader().setStretchLastSection(True)

import sys 

from PyQt4 import QtGui 
from PyQt4 import QtCore 


class Window(QtGui.QWidget): 
    def __init__(self, parent=None): 
     super(Window, self).__init__(parent=parent) 
     QtGui.QTableWidget.setMinimumSize(self, 500, 500) 
     QtGui.QTableWidget.setWindowTitle(self, "Custom table widget") 
     self.table = QtGui.QTableWidget() 
     rowf = 3 
     self.table.setColumnCount(3) 
     self.table.setRowCount(rowf) 
     self.table.setHorizontalHeaderItem(0, QtGui.QTableWidgetItem("col1")) 
     self.table.setHorizontalHeaderItem(1, QtGui.QTableWidgetItem("col2")) 
     self.table.setHorizontalHeaderItem(2, QtGui.QTableWidgetItem("col3")) 
     self.table.horizontalHeader().setStretchLastSection(True) 
     # self.table.verticalHeader().setStretchLastSection(True) 

     self.buttonBox = QtGui.QDialogButtonBox(self) 
     self.buttonBox.setOrientation(QtCore.Qt.Horizontal) 
     self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Ok) 

     self.verticalLayout = QtGui.QVBoxLayout(self) 
     self.verticalLayout.addWidget(self.table) 
     self.verticalLayout.addWidget(self.buttonBox) 

     self.buttonBox.accepted.connect(self.close) 
     self.buttonBox.rejected.connect(self.close) 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    w = Window() 
    w.show() 
    sys.exit(app.exec_()) 

只有橫向:

enter image description here

只有垂直:

enter image description here

垂直和水平:

enter image description here

+0

非常感謝你爲這個例子!節日快樂,聖誕快樂。 – answerSeeker