您好我正在尝试在qvbox布局中嵌入qtableview 但是我没有设法将qtableview保留在qvboxlayout中 下面的代码给了我两个窗口,我不知道为什么layout.addwidget没有按预期运行。
class QMT(QtGui.QMainWindow):
def __init__(self, parent=None):
super(QMT, self).__init__(parent)
layout=QVBoxLayout(self)
self.view = QtGui.QTableView()
self.name = QtGui.QLabel("Name:")
layout.addWidget(self.view)
layout.addWidget(self.name)
self.initUI() #Windows stuff + show()
self.setLayout(layout)
答案 0 :(得分:0)
我自己回答并找到了我对PyQt不了解的基本陈述:
在Qt中使用布局系统有两个步骤:将小部件组织到布局中,并将布局应用到小部件。
所以这里有用的东西:
class QMT(QtGui.QMainWindow):
def __init__(self, parent=None):
super(QMT, self).__init__(parent)
# Create Qtable view widget
self.view = QtGui.QTableView(self)
# Create Canvas for graph
self.fig=Figure(figsize=(5,5), dpi=100)
self.canvas=FigureCanvas(self.fig)
self.graph=self.fig.add_subplot(111)
#Layout management
#Initiate splitter (more convenient for end user)
splitter1 = QtGui.QSplitter(QtCore.Qt.Horizontal)
splitter1.addWidget(self.view)
splitter1.addWidget(self.canvas)
# Create Horizontal Layout Box
hbox = QtGui.QHBoxLayout()
# Add the splitter to the hbox
hbox.addWidget(splitter1)
#initiate widget to be shown
widget = QtGui.QWidget(self)
widget.setLayout(hbox)
#Set widget as central widget
self.setCentralWidget(widget)
# Windows & Menu stuff
self.initUI()