我正在尝试通过PyQt在中的屏幕上显示数组。我已经创建了我想要显示和数组的对象,它在Qt设计器中被称为tableView。它是一个QTableView。
当我尝试运行这段代码时;
tablemodel = MyTableModel(my_array, self)
tableview = QTableView()
tableview.setModel(tablemodel)
layout = QVBoxLayout(self)
layout.addWidget(tableview)
self.setLayout(layout)我得到以下错误;
QLayout: Attempting to add QLayout "" to MyWindow "MainWindow", which already has a layout
QWidget::setLayout: Attempting to set QLayout "" on MyWindow "MainWindow", which already has a layout任何有关显示my_array的问题的帮助都将不胜感激!谢谢!
发布于 2017-02-04 03:05:43
QMainWindow类与大多数其他小部件的不同之处在于,它具有内置布局,用于布局菜单栏、工具栏、状态栏和停靠小部件:

正如您所看到的,它还为central-widget留出了空间,这是您需要放置自己的内容的地方。因此,您的代码需要如下所示:
tablemodel = MyTableModel(my_array, self)
tableview = QTableView()
tableview.setModel(tablemodel)
widget = QWidget()
layout = QVBoxLayout(widget)
layout.addWidget(tableview)
self.setCentralWidget(widget)发布于 2017-02-03 22:56:26
试试这个:
layout = QVBoxLayout()
layout.addWidget(tableview)
layout2 = QVBoxLayout(self)
layout2.addLayout(layout)https://stackoverflow.com/questions/42026852
复制相似问题