Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
fortero |
18.4.2011, 13:51
Сообщение
#1
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
Добрый день Господа!
Есть вот такой незамысловатый код: Это простая табличка, из 2 колонок и 2 строк, сортировка работает… Вод только осталось решить 2 проблемы я не селён в QT, я только начинаю. Подскажите пожалуйста как сделать что бы когда я 1 раз кликаю на строку марке не ячейку подсвечивал а всю строку и второе разумеется не пробовал редактировать. То есть мне нужна табличка которая не будет редактироваться, а маркер подсвечивать будет всю строку, как это сделать??? Спасибо за внимание! |
|
|
|
|
fortero |
18.4.2011, 14:37
Сообщение
#2
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
С первой проблемой я догадываюсь как решить нашёл я слот selectRow(int row), то есть зная на какой строке стоит маркер можно при помощи connect передать номер строки, тогда как связать эти действия? То есть как послать нужный сигнал???
|
|
|
|
|
fortero |
18.4.2011, 15:07
Сообщение
#3
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
Помоему я нашёл решение, скажите насколько это правильно но чёрт возми оно работает:
Как же быть со вторым вопросом? Запрет редактирования??? |
|
|
|
|
wiz29 |
18.4.2011, 15:14
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12
|
Цитата(fortero @ 18.4.2011, 15:37) Link ... тогда как связать эти действия? То есть как послать нужный сигнал??? Не совсем понятно о чем идет речь. Цитата(fortero @ 18.4.2011, 16:07) Link Помоему я нашёл решение, скажите насколько это правильно но чёрт возми оно работает: Абсолютно нормальное решение. Цитата(fortero @ 18.4.2011, 16:07) Link Запрет редактирования???
|
|
|
|
|
fortero |
18.4.2011, 16:09
Сообщение
#5
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
[quota]
[/quote] А я вот ещё нашёл, подайдёт?
|
|
|
|
|
wiz29 |
18.4.2011, 16:37
Сообщение
#6
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12
|
да подойдет, если нужен запрет на редактирование всего представления таблицы.
|
|
|
|
|
silver47 |
18.4.2011, 17:42
Сообщение
#7
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6
|
Цитата(fortero @ 18.4.2011, 13:51) Link а маркер подсвечивать будет всю строку, как это сделать??? Цитата(fortero @ 18.4.2011, 17:07) Link Помоему я нашёл решение, скажите насколько это правильно но чёрт возми оно работает: Мне кажется так лучше: QTableWidget::setSelectionBehavior(QAbstractItemView::SelectRows); Сообщение отредактировал silver47 - 18.4.2011, 17:45 |
|
|
|
|
fortero |
18.4.2011, 17:44
Сообщение
#8
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0
|
Новый вопрос, теперь решил я передовать сигнал в слот другого класса, вот таким способом:
Но не чего не происходит, а когда я пробовал так: То всё работало передовался номер строки и колонки, а как же передать содиржимое ячейки? |
|
|
|
|
ruzik |
18.4.2011, 17:48
Сообщение
#9
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0
|
tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //Выделить всю строку
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //Запрет редактирования |
|
|
|
|
silver47 |
18.4.2011, 18:10
Сообщение
#10
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6
|
Цитата(fortero @ 18.4.2011, 19:44) Link То всё работало передовался номер строки и колонки, а как же передать содиржимое ячейки? Ну логично предположить, что, если вы ячейку не редактируете, а просто выделяете, то нужно бы создать свой сигнал, который будет испускаться при выделении ячейки, и который будет передавать ее содержимое. Если точно не знаете, что будет в ячейке, то рекомендую в сигнале передавать тип QVariant Для этого свяжем сигнал выделения ячейки с неким слотом:
Сообщение отредактировал silver47 - 18.4.2011, 18:23 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 12:42 |