【问题标题】:PyQt5 - Dynamically created widget doesn't show - No layoutPyQt5 - 动态创建的小部件不显示 - 没有布局
【发布时间】:2019-01-30 07:09:31
【问题描述】:

我有一个小部件,它是用户创建图形的区域,节点是其他小部件。图区号大致是这样的:

class GraphArea(QtWidgets.QFrame):

    def __init__(self, parent=None):
        super(GraphArea, self).__init__(parent)
        self.setObjectName('GraphArea')
        self.parent = parent

        self.add_widget = None

当用户添加新节点(我称它们为实体)时,会调用一个函数:

def create_widget(self, add_info, x, y):
    self.add_widget = Entity(self, add_info[1], add_info[2], 1)
    self.add_widget.move(x, y)

没什么特别的。问题是,创建的小部件是不可见的。它在那里,大小和位置,只是不在 GraphArea 中。当我尝试使用布局时,一切正常。我错过了什么明显的东西吗?

请注意,当我在__init__ 函数中粘贴“创建”代码时,它可以正常工作。问题似乎是当 UI 已初始化并尝试在 GraphArea 中随机添加小部件时。

【问题讨论】:

标签: python pyqt pyqt5


【解决方案1】:

对于任何想知道的人,我必须在创建的小部件上调用 .show() 函数。所以是这样的:

def create_widget(self, add_info, x, y):
    self.add_widget = Entity(self, add_info[1], add_info[2], 1)
    self.add_widget.move(x, y)
    self.add_widget.show()

【讨论】:

    猜你喜欢
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2012-06-03
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多