首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QFrame中添加QWidget

在QFrame中添加QWidget
EN

Stack Overflow用户
提问于 2020-10-21 23:03:37
回答 2查看 958关注 0票数 0

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

我的问题是顺序:我试图在QFrame上自动创建许多QRadioButtons ( RadioButtons必须留在框架as...children中?)。

现在,我发现我只能在布局中创建新的小部件(例如"MyLayout.addWidget(QRadioButton")),而且不可能做像"MyFrame.addWidget(QRadioButton)“这样的事情。我需要这些小工具在框架内,因为我可以把它们放在正确的位置与"MyRB.move(X,Y)“。

使用QtDesigner可以在一个框架中放置许多小部件(比如RadioButtons),这样我就可以选择X,Y坐标,但我需要创建和放置数量可变的X,Y坐标。

可以在QFrame中创建Qwidget吗?

EN

回答 2

Stack Overflow用户

发布于 2020-10-23 01:42:09

根据musicamante的评论进行编辑,我知道这是家长的问题。我尝试在主窗口中插入一个标签和一个RadioButton:

代码语言:javascript
复制
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)
     ...

这个非常简单的示例运行得很好,但是当我尝试通过函数添加标签时

代码语言:javascript
复制
def myFunction(self):
    LB1 = QLabel('MyLabel')
    LB1.setObjectName('LABEL_1')
    LB1.setParent(self.myFrame)

Widget已插入,但它不可见,实际上添加以下行是为了检查他是否存在

代码语言:javascript
复制
    WidgetList = self.myFrame.findChildren(QLabel)
    
    for item in WidgetList:
        print(item.objectName())

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

票数 0
EN

Stack Overflow用户

发布于 2021-09-28 01:20:29

试一试

代码语言:javascript
复制
def myFunction(self):

    LB1 = self.sender()
    LB1.QLabel('MyLabel')
    LB1.setObjectName('LABEL_1')
    LB1.setParent(self.myFrame)

您可以在parent中调用self.myFunction()。

如果你想传递标签,你可以:

代码语言:javascript
复制
def myFunction(self, label):

    LB1 = self.sender()
    LB1.QLabel(label)
    LB1.setObjectName(label)
    LB1.setParent(self.myFrame)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64466447

复制
相关文章

相似问题

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