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

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

QTableWidget: очистить активный item

Есть программа, на главном оке расположена таблица(QTableWidget). Каждый раз когда меняется содержимое ячейки происходит проверка на вводимые символы. И тут возникло два вопроса:
1) Как после ввода неправильных символов чистить данный item?
2) Как вернуть фокус на данную ячейку?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Disable qtablewidget item
Добрый день. Подскажите как сделать неактивной в Qtablewidget строку при нажатии. Наподобие.

Ловим активный select и ставим, что он активный
есть select с двумя option.Задание — нужно сделать так чтобы по нажатию на один option с.

Access отчислить студента ( активный/ не активный )
Вот и добрались мы до истины, и заглохли. https://www.cyberforum.ru/ms-access/thread1706793.html.

QTableWidget (1) >>> QTableWidget (2) исключить повторяющиеся строки
Добрый день. Подскажите как лучше реализовать. Хочу реализовать исключение повторяющихся.

223 / 188 / 97
Регистрация: 15.04.2018
Сообщений: 718

Как вариант получать в слот изменения, проверять его (в данном случае использую регулярные выражения) и если что-то не так — делать действия (я вставил NaN)

p.s. сигнал: itemChanged(QTableWidgetItem *)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
//cpp file #include "testview.h" #include "ui_testview.h" TestView::TestView(QWidget *parent) : QMainWindow(parent), ui(new Ui::TestView) { ui->setupUi(this); } TestView::~TestView() { delete ui; } void TestView::on_tableWidget_itemChanged(QTableWidgetItem *item) { QString text = item->text(); QRegExp rx("^[0-9]+"); bool isCorrect = rx.exactMatch(text); if(!isCorrect) item->setText("NaN"); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
//h file #ifndef TESTVIEW_H #define TESTVIEW_H #include #include namespace Ui { class TestView; } class TestView : public QMainWindow { Q_OBJECT public: explicit TestView(QWidget *parent = nullptr); ~TestView(); private slots: void on_tableWidget_itemChanged(QTableWidgetItem *item); private: Ui::TestView *ui; }; #endif // TESTVIEW_H

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

Просмотр профиля

29.11.2009, 19:30

Группа: Участник
Сообщений: 43
Регистрация: 22.10.2009
Пользователь №: 1173

Репутация: 0

Здравствуйте, как очистить QTableWidget, так чтоб не по каждой ячейки идти, а всю таблицу целиком, и чтоб память чистилась тоже?

опции профиля:

Как удалить строку в QtableWidget?

Всем привет! Ребят. подскажите пожалуйста. Не могу добиться удаления одной строки.Есть слот.

a = self.ui.raschetList.rowCount() for row in range(a): self.ui.raschetList.removeRow(row)

При этом удаляется половина строк. Я новичок в QT. что мне еще нужно передать слоту, чтоб делал то что мне нужно. Удалял выделенную строку. Так же хочу понять: что мне нужно использовать для передачи в строку запроса на удаления в БД MySql. Потому что, нужно, что бы эта строка удалялась и от туда. Уже многое перепробовал, но все равно не доходит. Заранее спасибо. Вот код из GUI. Чтоб было понятно, что такое rashetList.

self.raschetList = QtWidgets.QTableWidget(self.groupBox_4) self.raschetList.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.raschetList.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection) self.raschetList.setObjectName("raschetList") self.raschetList.setColumnCount(9)
  • Вопрос задан более двух лет назад
  • 1765 просмотров

QTableWidget. Удаление нескольких выделенных строк

QTableWidget. Удаление таблицы
Здравствуйте. Пробую удалить строки таблицы, с помощью ui->tableWidget->setRowCount( 0); но не.

Удаление виджета QTableWidget
Прошу помочь решить следующую проблему. На панели инструментов кнопка-action, checkable. При.

Удаление пустого пространства в QTableWidget
Доброго времени суток! Подскажите как удалить пустое пространство, где нет ячеек у QTableWidget? .

QTableWidget сравнение и удаление одинаковых ячеек
Как при помощи цикла можно сравнивать и удалять ячейки до того, как они добавятся на QTableWidget.

86 / 45 / 11
Регистрация: 20.12.2010
Сообщений: 216
Записей в блоге: 1

QListQTableWidgetItem *> QTableWidget::selectedItems()

собираешь в отдельный список номера рядом которые нужно удалить по окончанию удаления элементов,
удаляешь item’ы из списка selectedItems, передвигаешь строки если они не в конце таблицы

Регистрация: 12.11.2016
Сообщений: 43

ЦитатаСообщение от Skjame Посмотреть сообщение

собираешь в отдельный список номера рядом которые нужно удалить по окончанию удаления элементов,
удаляешь item’ы из списка selectedItems, передвигаешь строки если они не в конце таблицы

А можно пример, пожалуйста?

Вот нашёл пример, как можно, но нужно выделять всю строку, а не отдельный элемент строки.

1 2 3 4 5 6
QModelIndexList selectedRows = ui->tableWidget->selectionModel()->selectedRows(); while (!selectedRows.empty()) { ui->tableWidget->removeRow(selectedRows[0].row()); selectedRows = ui->tableWidget->selectionModel()->selectedRows(); }

Можно ли как-то сделать, чтобы не надо было выделять всю строку?
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021

void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)

86 / 45 / 11
Регистрация: 20.12.2010
Сообщений: 216
Записей в блоге: 1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#include class MyTableWidget : public QTableWidget { protected: public: MyTableWidget(QWidget* parent = nullptr); MyTableWidget(int rows, int cols, QWidget* parent = nullptr); public slots: void removeSelectedRows(); }; MyTableWidget::MyTableWidget(QWidget *parent) : QTableWidget(parent){ } MyTableWidget::MyTableWidget(int rows, int cols, QWidget *parent) : QTableWidget(rows, cols, parent){ } void MyTableWidget::removeSelectedRows(){ QSetint> selectedRows; foreach (QModelIndex index, this->selectedIndexes()){ selectedRows.insert(index.row()); } foreach(int row, selectedRows){ removeRow(row); } }

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

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