我已经问了类似的问题here但是我想知道向qtablewigets添加布局的正确方法,以及如何在同一个窗口中放置2个表格小部件,并排,如果他们都只有3列。
答案 0 :(得分:0)
将表格放在QHBoxLayout
。
代码:
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.table1 = QtGui.QTableWidget()
self.configureTable(self.table1)
self.table2 = QtGui.QTableWidget()
self.configureTable(self.table2)
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.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.addWidget(self.table1)
self.horizontalLayout.addWidget(self.table2)
self.verticalLayout.addLayout(self.horizontalLayout)
self.verticalLayout.addWidget(self.buttonBox)
self.buttonBox.accepted.connect(self.close)
self.buttonBox.rejected.connect(self.close)
def configureTable(self, table):
rowf = 3
table.setColumnCount(3)
table.setRowCount(rowf)
table.setHorizontalHeaderItem(0, QtGui.QTableWidgetItem("col1"))
table.setHorizontalHeaderItem(1, QtGui.QTableWidgetItem("col2"))
table.setHorizontalHeaderItem(2, QtGui.QTableWidgetItem("col3"))
table.horizontalHeader().setStretchLastSection(True)
# table.verticalHeader().setStretchLastSection(True)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())
图片: