2016-12-25 15 views
-1

Я мой QTableWidget определяется следующим образом:Как добавить макет к Qtablewidget в pyqt?

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) 

Я хотел бы мой конечный результат, чтобы посмотреть что-то похожее на рис ниже, но прямо сейчас, макет, который я пытаюсь добавить не Незаметная работа Кстати, я бы хотел. Я новичок в 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

Только Vertical:

enter image description here

Вертикальная и горизонтальная:

enter image description here

+0

Спасибо так много для этого примера! Счастливые праздники и веселое Рождество. – answerSeeker