Как очистить qtablewidget
Перейти к содержимому

Как очистить qtablewidget

Как удалить все строки из 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *