2016-12-25 13 views
-1

は、私は私のqtablewidgetは次のように定義されています:pyqtのQtableウィジェットにレイアウトを追加するにはどうすればいいですか?

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

関連する問題