Как удалить все строки из QTableWidget
Я пытаюсь удалить все строки из QTableWidget. Вот что я пробовал.
У меня было две строки в таблице. Но это просто удалило одну строку. Причиной может быть то, что я не создал таблицу с фиксированным размером таблицы. Документация Qt для rowCount() говорит,
Это свойство содержит количество строк в таблице.
По умолчанию для таблицы, построенной без подсчета строк и столбцов, это свойство содержит значение 0.
Так что, если это так, что лучший способ удалить все строки из таблицы?
ОТВЕТЫ
Ответ 1
Просто установите количество строк в 0 с помощью:
он автоматически удалит QTableWidgetItem , вызвав removeRows , как вы можете видеть в QTableWidget внутреннем коде модели:
Ответ 2
Я не знаю QTableWidget , но ваш код, похоже, имеет логический недостаток. Вы забываете, что по ходу цикла вы уменьшаете значение mTestTable->rowCount() . После того, как вы удалите одну строку, i будет одним и mTestTable->rowCount() также будет одним, поэтому ваш цикл остановится.
Я бы сделал это так:
Ответ 3
AFAIK setRowCount(0) ничего не удаляет. Объекты все еще существуют, но не более заметны.
Ответ 4
Ответ 5
Чтобы предотвратить сбой приложения, отключите все сигналы от QTableView.
Ответ 6
Простым способом удаления строк является установка количества строк в ноль. Это использует removeRows() внутренне.
Вы также можете очистить содержимое, а затем удалить все строки.
Оба фрагмента оставляют заголовки нетронутыми!
Если вам нужно также избавиться от заголовков, вы можете переключиться с clearContents() на clear() .
Ответ 7
Ваш код не удаляет последнюю строку.
В вашем коде в первый раз rowCount() есть значение 2 , а значение i равно 0 , поэтому его удаляемая строка 1 st,
Но во второй раз значение i увеличивается с помощью 1 , но rowCount() возвращает обновленный счетчик строк, который теперь равен 1, поэтому он не удаляет последнюю строку.
Надеюсь, теперь вам будет ясно.
Ответ 8
Ответ 9
Удаляет все элементы, не входящие в заголовки из представления. Это также удалит все варианты. Размеры таблицы остаются неизменными.
Удаляет все элементы в представлении. Это также удалит все варианты и заголовки.
Ответ 10
Вы можете просто добавить пустую модель товара (QStandardItemModel) в QTableView (myTableView):
How to delete all rows from QTableWidget
I am trying to delete all rows from a QTableWidget . Here is what I tried.
I had two rows in my table. But this just deleted a single row. A reason could be that I did not create the the table with a fixed table size. The Qt Documentation for rowCount() says,
This property holds the number of rows in the table.
By default, for a table constructed without row and column counts, this property contains a value of 0.
So if that is the case, what is the best way to remove all rows from table?
Как я могу очистить pyqt QTableWidget?
Прежде всего, я выбираю пользователя в qcombobox после этого, я нажимаю кнопку qpushbutton, и я заполняю его из записей базы данных; когда я выбираю другого пользователя, и я нажимаю кнопку qpush, чтобы добавить данные, которые я пытаюсь очистить с помощью:
Данные исчезают, но строки остаются.
Код, который я заполняю,:
Вам нужно удалить строки отдельно, например:
Вы также можете попробовать:
Но это может не сработать, прошло некоторое время с тех пор, как я использовал Qt.