PyQt Сортировать список кнопок радио - PullRequest
0 голосов
/ 18 июля 2011

Я пытаюсь динамически создать список переключателей, которые представляют открытые COM-порты на моем компьютере.Создать и отобразить список в первый раз достаточно просто, так как я могу просто отсортировать порты по порядку номеров, а затем добавить соответствующие переключатели в мою вертикальную раскладку.

Однако, если пользователь вставляет новое устройство, которое создает новый COM-порт, я должен найти способ добавить новую кнопку в правильное место, поскольку она может быть не в правильном числовом порядке.Пока что единственный способ, которым я смог это сделать, - это просто избавиться от всех кнопок, а затем повторно добавить их после сортировки списка, так как addWidget не позволяет мне указать, куда добавить виджет.Этот метод кажется действительно неэффективным, и я предполагаю, что есть более простой способ, но я просто еще не нашел его.

1 Ответ

3 голосов
/ 18 июля 2011

Вместо использования 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...