我正在为图形用户界面开发一个使用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吗?
发布于 2020-10-23 01:42:09
根据musicamante的评论进行编辑,我知道这是家长的问题。我尝试在主窗口中插入一个标签和一个RadioButton:
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)Widget已插入,但它不可见,实际上添加以下行是为了检查他是否存在
WidgetList = self.myFrame.findChildren(QLabel)
for item in WidgetList:
print(item.objectName())我在控制台中看到标签在那里。你知道为什么它看不见吗?
发布于 2021-09-28 01:20:29
试一试
def myFunction(self):
LB1 = self.sender()
LB1.QLabel('MyLabel')
LB1.setObjectName('LABEL_1')
LB1.setParent(self.myFrame)您可以在parent中调用self.myFunction()。
如果你想传递标签,你可以:
def myFunction(self, label):
LB1 = self.sender()
LB1.QLabel(label)
LB1.setObjectName(label)
LB1.setParent(self.myFrame)https://stackoverflow.com/questions/64466447
复制相似问题