在QFrame中添加QWidget

问题描述

我正在使用Python3和QtDesigner开发用于图形用户界面的桌面软件。

我的问题是问题:我正在尝试通过QFrame自动创建许多QRadioButton(RadioButton必须以[孩子的身份?]留在框架内)。

现在,我看到我只能在布局内创建新的小部件(例如“ MyLayout.addWidget(QRadioButton”)),并且无法执行“ MyFrame.addWidget(QRadioButton)”之类的操作。我需要在框架内放置这些小部件,因为这样我可以使用“ MyRB.move(X,Y)”将它们放置在正确的位置。

使用QtDesigner可以将许多小部件(如RadioButtons)放置在具有“残缺布局”的框架中,这样我就可以选择X,Y坐标,但是我需要创建和放置可变数量的那些。

是否可以在QFrame中创建Qwidget?

解决方法

[编辑] 根据musicamante的评论,我知道这是一个父母问题。 我试图在主窗口中插入标签和单选按钮:

def __init__(self):
     super().__init__()
     uic.loadUi('DSS_GUI2.ui',self) # i load the GUI with QtDesigner
     LB1 = QLabel('MyLabel',self)
     RB1 = QRadioButton('MyRadioButton',self)
     ...

这个非常简单的示例可以正常工作,但是当我尝试通过函数添加标签时

def myFunction(self):
    LB1 = QLabel('MyLabel')
    LB1.setObjectName('LABEL_1')
    LB1.setParent(self.myFrame)

窗口小部件已插入但不可见,实际上添加了以下几行以检查他的存在

    WidgetList = self.myFrame.findChildren(QLabel)
    
    for item in WidgetList:
        print(item.objectName())

我在控制台中看到标签在那里。 你知道为什么它不可见吗?

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...