PyQt单选按钮排序列表



我试图动态创建一个单选按钮列表,代表我的计算机上打开的COM端口。第一次创建和显示列表非常简单,因为我可以将端口按数字顺序排序,然后将相应的单选按钮添加到垂直布局中。

然而,如果用户插入一个新设备,创建一个新的COM端口,我必须找到一些方法来添加新的按钮在正确的地方,因为它可能不是在正确的数字顺序。到目前为止,我能够做到这一点的唯一方法是删除所有按钮,然后在排序列表后重新添加它们,因为addWidget不允许我指定在哪里添加小部件。这种方法似乎效率很低,我认为有一种更简单的方法,但我还没有找到。

不使用addWidget(),而是确定按钮列表中的索引来放置新按钮,并使用QBoxLayout.insertWidget(index, widget)将其插入那里:

newButton = QRadioButton(...)
newText = newButton.text()
index = 0
for button in get_buttons():
    if button.text() >= newText:
      break
    index += 1
layout.insertWidget(index, newButton)

相关内容

  • 没有找到相关文章