Название: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 10:51 Имеется QTableWidget, каким способом можно получить данные ячеек в строке и перенаправить их в lineEdit'ы?
Вот имеется такая штука как QTableWidget::selectedItems (), которая возвращает список всех выделенных элементов... До меня не доходит, как можно изъять значение каждой выделенной ячейки в строке и передать их дальше. Дайте пожалуйста наводку)) Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: _OLEGator_ от Февраль 10, 2012, 10:59 %QTDIR%\bin\assistant.exe
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: alexman от Февраль 10, 2012, 10:59 А ты QTableWidgetItem смотрел?
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 11:18 Да я им пользовался, когда получал данные из запроса sqlite.
вот получение данных конкретной ячейки знаю как... а как именно выделенной строки Код
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 11:43 получилось что то вроде этого ))) :
Код
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: kambala от Февраль 10, 2012, 13:28 проще уж QTableWidget::selectedItems(). или QTableWidget::selectedRanges() если можно выделять группами.
P.S. зачем у тебя в коде присутствует строчка QTableWidgetItem *item = new QTableWidgetItem(); - непонятно. Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 13:50 вот выделяю строку и получаю ее значение:
Код
Почему то ее значение всегда больше 0-ля. Хотя выделяю первую строку, а выдает 1-цу... А это строчка QTableWidgetItem *item = new QTableWidgetItem(); - ошибся, удалил. Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: mutineer от Февраль 10, 2012, 13:53 может потому, что count() - это количество выделенных строк?
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 14:04 дошло))) вот что получилось:
Код
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: mutineer от Февраль 10, 2012, 14:06 А про цикл for слышать не приходилось? Он бы тут был более к месту
Да и switch тоже удобный оператор... Кстати, if (j==6) не выполнится Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 14:16 Код - убрал. - он и не нужным был. Про цикл for, слышал и пользовался... только не пойму чем здесь плох while ()? switch - а как переключатель тут можно применить? Сейчас вроде все норм работает... Только в самой таблицы имеется косяк... Применил сортировку столбцов: Код
Таблица выводится при клике на кнопку. При первом клике все норм, при втором клике таблица меняет расположении столбцов... Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: mutineer от Февраль 10, 2012, 14:26 for(int j = 0; j < 6; ++j) - читается лучше, чем while в этом случае
вместо череды if-ов switch(j) {...} тоже чисто для улучшения читабельности кода Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: Пантер от Февраль 10, 2012, 14:27 for(int j = 0; j < 6; ++j) - читается лучше, чем while в этом случае А еще лучше, сложить lineEdit_* в контейнер.вместо череды if-ов switch(j) {...} тоже чисто для улучшения читабельности кода Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: mutineer от Февраль 10, 2012, 14:29 for(int j = 0; j < 6; ++j) - читается лучше, чем while в этом случае А еще лучше, сложить lineEdit_* в контейнер.вместо череды if-ов switch(j) {...} тоже чисто для улучшения читабельности кода Ну это вообще в идеале:) Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 14:33 С контейнерами еще не работал... только начал учиться... когда то прогал на с++, но очень простые программы и очень давно.
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 14:42 Следуя Ваши советам ))
Код
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: mutineer от Февраль 10, 2012, 14:46 забыл в switch'е поставить break...
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: Пантер от Февраль 10, 2012, 14:47 Код
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: BRE от Февраль 10, 2012, 14:52 Пантер, почему не просто QList? :)
Код
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 14:56 Потрясающие возможности оптимизации кода. Спасибо Вам огромное.
Код
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: Пантер от Февраль 10, 2012, 14:59 BRE, обрати внимание на отсутствие индекса 2.
wildcat, контейнер лучше сделай мембером класса и заполни его в конструкторе. Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: sudo от Февраль 10, 2012, 15:02 И метод, в принципе, вполне может быть без возвращаемого значения. Типы возвращаемых значений реальные и в сигнатуре не совпадают, хотя true и кастанётся в единицу. Компилятор предупреждения не выдаёт?
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: BRE от Февраль 10, 2012, 15:06 BRE, обрати внимание на отсутствие индекса 2. Так 0, туда положить по этому индексу и проверку вместо contains. :)Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: Пантер от Февраль 10, 2012, 15:07 BRE, обрати внимание на отсутствие индекса 2. Так 0, туда положить по этому индексу и проверку вместо contains. :)Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: sudo от Февраль 10, 2012, 15:09 wildcat, а не собираешься ли ты через эти lineEditы редактировать значения в TableView? А то может сейчас тебе нормальную модель сообразим, прям в ячейках можно будет редактировать
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 15:13 И метод, в принципе, вполне может быть без возвращаемого значения. Типы возвращаемых значений реальные и в сигнатуре не совпадают, хотя true и кастанётся в единицу. Компилятор предупреждения не выдаёт? Не выдает. Да вот вижу что нет индекса 2. Вот есть мысль как исправить... реализовать пытаюсь))) Дело в том что вот это значение это по сути номер столбца... После сортировки столбцов в TableWidget визуально столбцы поменялись местами, а индексы их остались. Вот пытаюсь визуальные переделать в фактические и тогда контейнер будет нормальным ))) Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: wildcat от Февраль 10, 2012, 15:17 wildcat, а не собираешься ли ты через эти lineEditы редактировать значения в TableView? А то может сейчас тебе нормальную модель сообразим, прям в ячейках можно будет редактировать Да я думал что бы сделать редактор в ячейках... но не получится... Механизм очень сложный... Дело в том. что есть программа по регистрации usb носителей... Каждый носитель заносится в БД. Первый столбец в БД является контрольной суммой всех аргументов (владелец, серия, группа, название устройства)... По этому проще вызывать процесс и вставлять в него аргументы из LineEdit. А то придется реализовывать весь процесс подсчета контрольной суммы. Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: BRE от Февраль 10, 2012, 15:25 Можно и так. :) Мне показалось с мапом проще для понимания. Для пониманию возможно, а по хорошему и QList там не нужен. :)Код
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: Пантер от Февраль 10, 2012, 15:36 BRE, тогде еще и static const. ;D
Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: BRE от Февраль 10, 2012, 15:43 BRE, тогде еще и static const. ;D При static массив будет инициализирован единожды, а если при очередном вызове указатели на объекты QLineEdit изменяться?А при const компилятор нам не даст вызвать не const-методы (а setText как раз такой). :) Название: Re: QTableWidget - получение данных из выделенной строки Отправлено: Пантер от Февраль 10, 2012, 15:47 Код На счет статика, да, если меняются, то не стоит. |