PyQt5-动态创建的小部件不显示-无布局

时间:2018-08-23 20:18:14

标签: python pyqt pyqt5

我有一个小部件,它是用户将在其中创建图形的区域,节点是其他小部件。图形区域代码大致如下:

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中时。

1 个答案:

答案 0 :(得分:0)

对于任何想知道的人,我必须在创建的窗口小部件上调用.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()