QTableWidget.removeRow() возвращает -1 и неожиданное поведение пользовательского интерфейса в PyQt5/PySidePython

Программы на Python
Ответить
Anonymous
 QTableWidget.removeRow() возвращает -1 и неожиданное поведение пользовательского интерфейса в PyQt5/PySide

Сообщение Anonymous »

Я разрабатываю Систему управления запасами, используя Python и PyQt5 (пользовательский интерфейс разработан в Qt Designer). Я столкнулся с очень странной проблемой с удалением строки в QTableWidget.
Проблемы:
  • Проблема с индексом: Когда я вызываю self.tableWidget.currentRow(), он постоянно возвращает -1, даже если строка выбрана визуально. Следовательно, .removeRow(-1) ничего не делает или выдает ошибку.
  • Призрачное выполнение: Моя кнопка DELETE, похоже, очищает заголовки таблиц и ведет себя неожиданно, хотя я явно не подключил ее к функции с помощью .clicked.connect().
  • Сохранение данных: Даже когда пользовательский интерфейс выглядит «чистым» или «сбойным», базовые строки остаются в структуре данных, но горизонтальные заголовки исчезают.
Что я пробовал:
  • Переписать весь скрипт с нуля.
  • Проверка того, установлено ли для SelectionBehavior значение SelectRows.
  • Проверка имен объектов в Qt Designer.
    Мой текущий фрагмент:

    Код: Выделить всё

    def delete_item(self):
    row = self.tableWidget.currentRow()
    print(f"Selected row: {row}") # Always prints -1
    if row > -1:
    self.tableWidget.removeRow(row)
    
    Вопросы:

    Почему currentRow() возвращает -1, несмотря на выбор вручную?
  • Возможно ли, что автоматическое соединение Qt Designer (on_objectName_clicked) запускает метод Clear() по умолчанию?
  • Как безопасно удалить строку, не потеряв горизонтальные заголовки?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»