Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/68: Рейтинг темы: голосов - 68, средняя оценка - 4.65
8 / 3 / 0
Регистрация: 04.09.2011
Сообщений: 108
1

Получить номер выделенной строки tableView

29.12.2013, 18:58. Показов 14216. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
подскажите как получить номер выделенной строки tableView.
надо передать в переменную row номер строки. каждый раз выделять можно разные строки
C++ (Qt)
1
2
model.setData(model.index(row,5),true);
    model.submitAll();
я написал так. посмотрел вариант через record, но и там надо указывать индекс. а мне его и надо получить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2013, 18:58
Ответы с готовыми решениями:

Получение значения выделенной ячейки tableView
Всем доброго времени суток. Пишу программу на QT Creater, используя модели, требуется взять...

Получить строки из выделенной области
и снова вопрос, на этот раз врядли сам разберусь: я выделяю некий кусок текста, и получаю его в...

Получить все значения столбцов выделенной строки
Добрый день. Как получить все значения ячеек модели tableView? Данный код выводит значение...

Узнать номер предыдущей выделенной строки в ListBox
Допустим текущее значение ИтемИндекс=3. Я выделяю первую строку и получаю ИтемИндекс=0. Как...

10
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
29.12.2013, 19:18 2
http://www.forum.crossplatform... st&p=12708
0
8 / 3 / 0
Регистрация: 04.09.2011
Сообщений: 108
29.12.2013, 19:38  [ТС] 3
я видел эту тему, но я не верю, что для того, чтобы узнать индекс выбранной строки, надо перебирать все строки. зачем?
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
29.12.2013, 19:45 4
Что значит перебирать? QItemSelectionModel содержит список только выделенных строк. Их и перебираем.
0
8 / 3 / 0
Регистрация: 04.09.2011
Сообщений: 108
29.12.2013, 19:53  [ТС] 5
C++ (Qt)
1
2
3
4
5
6
7
selectModel = view->selectionModel(); 
    indexes = selectModel->selectedIndexes();
    
    foreach(index, indexes)
    {
        QString str;
        row = index.row();
т.е. foreach не перебор, да?
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
29.12.2013, 20:02 6
строка может быть не одна, по этому нужен перебор
если вам, по каким-то непонятным причинам, не нравится перебор и вы уверены что вам нужна только одна строка выделенная, то:
C++ (Qt)
1
2
3
QItemSelectionModel *selectModel = view->selectionModel();
if (selectModel->hasSelection())
    qDebug() << selectModel->selectedRows().first().row();
0
8 / 3 / 0
Регистрация: 04.09.2011
Сообщений: 108
29.12.2013, 20:43  [ТС] 7
а ведь действительно, выбраны то могут быть несколько строк.
в общем, сделал так
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void MainWindow::SetCompleteTrue(QSqlTableModel *model)
{
    int row;
    QItemSelectionModel    *selectModel;
    QModelIndexList         indexes;
    QModelIndex             index;
 
    // Узнаем выделенную строку
    selectModel = ui->tableView->selectionModel();
    indexes = selectModel->selectedIndexes();
 
    foreach(index, indexes)
    {
        row = index.row();
        model->setData(model->index(row,4),true);
        model->submitAll();
    }
}
суть функции - присвоить значение true 5 столбцу в таблице. что то не хочет делать

еще такую ошибку кажет
QObject::connect: Incompatible sender/receiver arguments
QPushButton::clicked() --> MainWindow::SetCompleteTrue(QSqlTableModel*)
соединяю
C++ (Qt)
1
connect(ui->pushButton_6,SIGNAL(clicked()),this,SLOT(SetCompleteTrue(QSqlTableModel*)));
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
29.12.2013, 20:50 8
Почитайте литературу по Qt и в частности по тому как работают сигналы слоты. Соединяете вы неверно, в корне не верно.
0
8 / 3 / 0
Регистрация: 04.09.2011
Сообщений: 108
30.12.2013, 05:18  [ТС] 9
Ну у меня есть опыт работы с Qt. Не сказать, что большой, но какой то есть. В прошлом проекте соединяли почти так, только
C++ (Qt)
1
connect(ui->pushButton_6,SIGNAL(clicked()),this,SLOT(SetCompleteTrue(QSqlTableModel*)));
у функции SetCompleteTrue вызов был без параметров. т.е.
C++ (Qt)
1
connect(ui->pushButton_6,SIGNAL(clicked()),this,SLOT(SetCompleteTrue()));
и ведь работало же. Правда в прошлом проекте и функции другие были, там почти все без параметров было.
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
30.12.2013, 15:49 10
Ну раз опыт есть - должны знать что при соединении сигнала и слота их агрументы должны быть одного типа. В вашем случае вы пытаетесь передать "ничего" как QSqlTableModel*.

Вот отправить что-то левое в слот без аргументов - это пожалуйста.
0
1 / 1 / 0
Регистрация: 11.03.2012
Сообщений: 70
30.08.2015, 10:26 11
Здрасти. Продолжение темы. Как получить данные из выбранной строки tableview. Индекс выделенной строки есть, а я не понимаю как изъять значения этой строки...Подскажите пожалуйста
0
30.08.2015, 10:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2015, 10:26
Помогаю со студенческими работами здесь

Узнать номер выделенной строки в списке значений
1С Предприятие 8.2 Есть список значений с данными. Пользователь может выбирать из этого списка...

Как получит номер строки выделенной ячейки?
Подскажите как получит номер строки выделенной ячейки. Заранее благоларю за помощь!

Узнать номер выделенной по щелчку строки в DbGrid
Как узнать номер выделенной по щелчку строки в DbGrid ? В Delphi вроде нашел код void...

Получить индекс выделенной строки УФ
Добрый день! На УФ есть элемент табличная часть. При редактировании одной ячейки нужно другой...

Получить текст выделенной строки в listview
Подскажите пожалуйста, как получить текст выделенной строки в listview? Заранее спасибо!!!

Получить данные выделенной строки DataGridView
Здравствуйте. На C# только начал писать, осваиваю помаленьку. Пишу приложение для взаимодействия...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru