首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加QLayout时出现PyQt错误

添加QLayout时出现PyQt错误
EN

Stack Overflow用户
提问于 2017-02-03 22:45:42
回答 2查看 340关注 0票数 1

我正在尝试通过PyQt在中的屏幕上显示数组。我已经创建了我想要显示和数组的对象,它在Qt设计器中被称为tableView。它是一个QTableView。

当我尝试运行这段代码时;

代码语言:javascript
复制
tablemodel = MyTableModel(my_array, self)
tableview = QTableView()
tableview.setModel(tablemodel)

layout = QVBoxLayout(self)
layout.addWidget(tableview)
self.setLayout(layout)

我得到以下错误;

代码语言:javascript
复制
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的问题的帮助都将不胜感激!谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-04 03:05:43

QMainWindow类与大多数其他小部件的不同之处在于,它具有内置布局,用于布局菜单栏、工具栏、状态栏和停靠小部件:

正如您所看到的,它还为central-widget留出了空间,这是您需要放置自己的内容的地方。因此,您的代码需要如下所示:

代码语言:javascript
复制
tablemodel = MyTableModel(my_array, self)
tableview = QTableView()
tableview.setModel(tablemodel)

widget = QWidget()
layout = QVBoxLayout(widget)
layout.addWidget(tableview)
self.setCentralWidget(widget)
票数 0
EN

Stack Overflow用户

发布于 2017-02-03 22:56:26

试试这个:

代码语言:javascript
复制
layout = QVBoxLayout()
layout.addWidget(tableview)

layout2 = QVBoxLayout(self)
layout2.addLayout(layout)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42026852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档