Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
zhsch
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 31
1

Выделение в QTableView

16.07.2011, 15:07. Просмотров 3505. Ответов 1
Метки нет (Все метки)

Здравствуйте.
Вопрос элементарный, но у меня вызывает сложности.
Не могу найти для класса QTableView (http://doc.crossplatform.ru/qt/4.3.2/qtableview.html) метод, который возвратил бы мне номер выделенной строки (в QTableView вывожу QSqlTableModel).
Подскажите как организовать удаление выделенного столбца.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2011, 15:07
Ответы с готовыми решениями:

QTableView сортировка и выделение
Приветствую всех любителей С++ и Qt в частности. Есть QTableView с моделью...

QTableView выделение строки
Здравствуйте, подскажите как программно выделить нужную строку в QTableView?...

Цветовое выделение, не селекция в QTableView
Добрый день, Есть тэйблвьюшка с установленным одиночным выделением Хочу...

QTableView::setSpan выделение объединенных ячеек
Никак не могу разобраться с выделением ячеек, объединенных при помощи setSpan....

Поиск в QTableView и выделение цветом найденой ячейки
Доброго времени суток. Имеется QTableView с моделью QStandardItemModel. Задача...

1
Levsha_c
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 21
17.12.2013, 00:11 2
Через index заполняешь model, на пример так

C++ (Qt)
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
#include <QtGui>
int main(int argc, char** argv)
{
 QApplication app(argc, argv);
 QStandardItemModel model(5, 3);
 
 for (int nTopRow = 0; nTopRow < 5; ++nTopRow)
 {
  QModelIndex index = model.index(nTopRow, 0);
  model.setData(index, "item" + QString::number(nTopRow + 1));
  model.insertRows(0, 4, index);
  model.insertColumns(0, 3, index);
 
  for (int nRow = 0; nRow < 4; ++nRow)
  {
    for (int nCol = 0; nCol < 3; ++nCol) 
    {
     QString strPos = QString("%1,%2").arg(nRow).arg(nCol);
     model.setData(model.index(nRow, nCol, index), strPos);
    }
  }
 }
QTreeView treeView;
treeView.setModel(&model);
treeView.show();
return app.exec();
}
Соответственно для получения строки делаешь так:
connect(tree,SIGNAL(clicked(QModelIndex)),this,SLOT(slot_open_item(QModelIndex)));

слот самописный в нём можно узнать содержимое строки на которой было нажатие

C++ (Qt)
1
2
3
4
void MyTreeWidget::slot_open_item(QModelIndex index)
{
    way=index.data().toString();
}
переменная way будет хранить значение ячейки на которой было нажатие.

Как вариант для определения строки можешь либо по значения искать номер допустим в списке или чём-то подобном (QList, QMap и т.д.) или при заполнении таблицы создавать дополнительное поле в котором будет храниться порядковый номер строки. Для скрытия это поля можно воспользоваться
C++ (Qt)
1
table.hideColumn(2);
, где 2 номер столбца который необходимо скрыть, в твоём случаи номер столбца который нужно скрыть будет скорее всего другим.

Ещё вариант QItemSelectionModel
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 00:11

QTableView
QTableView view; QSqlTableModel model; model.setTable(&quot;racer&quot;); ...

QTableView
Всем добрый день, ребят подскажите пожалуйста. Как заполнять такую таблицу? ...

QTableView
Подскажите подходящий сигнал для редактирования БД. Необходимо, сразу после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru