Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
26 декабря 2018 г. 16:38

Как узнать что QTableView пуст?

QT, QTableView

Здравствуйте. Как узнать что QTableView пуст? Тут пока работает

    QModelIndex IndexForTableView = ui->AllVacancyCompanyTableView->currentIndex();
    qDebug()<<IndexForTableView;

Выдает: QModelIndex(-1,-1,0x0,QObject(0x0)) Дальше пишу:

qDebug()<< ui->AllVacancyCompanyTableView->model()->data(ui->AllVacancyCompanyTableView->model()->index(IndexForTableView.row(),0),0);

и на этом моменте вылетает, хотя по логике должно выдавать "-1"

7

Добрый день!

Это так работает

if (tableView->model()->rowCount() > 0)
{
    qDebug() << "Not empty";
}
else
{
    qDebug() << "Is empty";
}
0

спасибо

1

Если TableView не заполнен, то на

qDebug()<< ui->AllVacancyCompanyTableView->model()->rowCount();

вылетает, а если заполнен, то все прекрасно. видимо обращается к несуществующей модели.

0

Да, вы правы.

Вы можете предварительно сделать проверку на существование модели

if (tableView->model() && tableView->model()->rowCount() > 0)
{
    qDebug() << "Not empty";
}
else
{
    qDebug() << "Is empty";
}
0

Вылетает. Видимо нужно проверить модель на равенство 0*0, но как это сделать?

if (ui->AllVacancyCompanyTableView->model() == QAbstractItemModel(0x0))

так не компилируется

0

или на nullptr проверять или просто в условие закидывать, а такое как вы написали больше никогда не пишите ))

надо так

if (ui->AllVacancyCompanyTableView->model())

или так

if (ui->AllVacancyCompanyTableView->model() == nullptr)

Но первый вариант короче, а делают они одно и тоже

0
  • 26 декабря 2018 г. 17:25
  • Ответ был помечен как решение.

пробовал

if (ui->AllVacancyCompanyTableView->model())

выкидывало так

if (ui->AllVacancyCompanyTableView->model() == nullptr)

заработало спасибо

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
A
22 января 2019 г. 21:22
Allyonz

C++ - Тест 001. Первая программа и типы данных

  • Результат:40баллов,
  • Очки рейтинга-8
A
22 января 2019 г. 14:15
Alex

Qt - Тест 001. Сигналы и слоты

  • Результат:89баллов,
  • Очки рейтинга6
IO
20 января 2019 г. 18:39
Ivan Otreshko

C++ - Тест 003. Условия и циклы

  • Результат:0баллов,
  • Очки рейтинга-10
Последние комментарии
22 января 2019 г. 13:17
Евгений Легоцкой

Создайте тогда тему здесь на форуме в разделе Qt с выкладками кода и вашими попытками внедрения делегата, позже гляну или может кто-то ещё глянет из опытных пользователей.
I
22 января 2019 г. 13:13
IscanderChe

Не проще тогда использовать сразу кастомный делегат с чекбоксом? Я попробовал, но там засада в том, что чекбокс показывается только при щелчке на ячейку, а дефолтно показывается значение. Как ...
22 января 2019 г. 12:15
Евгений Легоцкой

Если будет не приемлемо потом, то тогда через кастомный Item Delegate нужно будет перерисовать ячейки в той колонке.
I
22 января 2019 г. 12:09
IscanderChe

Получилось приемлемо. Спасибо!Нюанс только в том, что поле рядом с чекбоксом не пропадает, оно просто пустое, что видно при выделении ячейки. Но этого достаточно.
22 января 2019 г. 11:50
Евгений Легоцкой

Переопределить метод data для той колонки и роли Qt::DisplayRole, чтобы в том случае возвращался QVariant() я так думаю... Но возможно, что у вас там будут нюансы, если вы туда чекбокс за...
Сейчас обсуждают на форуме
23 января 2019 г. 7:54
Михаиллл

Зарание спасибо.А еще на эту тему можно будет сделать статью. Это контент будет уникальным.
23 января 2019 г. 7:37
Евгений Легоцкой

Hello. Maybe the English will be better for you? I think russian is not native language for you, or did I mistake? Did I undesrtood rightly, that you mean this documentation ( ...
I
22 января 2019 г. 13:45
IscanderChe

Всем добрый день. Суть задачи: надо, чтобы в одной из колонок QTableView вместо хранимого в QSqlTableModel значения выводился чекбокс и при смене состояния чекбокса значения в базе тоже ...
M
22 января 2019 г. 13:15
Max-P85

Евгений, огромное спасибо, все работает!
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы