crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> флаг установил, а обратно не убрать
Daan
  опции профиля:
сообщение 17.9.2010, 20:18
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 13.9.2010
Пользователь №: 2033

Спасибо сказали: 0 раз(а)




Репутация:   0  


QTableWidgetItem eoo;
eoo.setFlags(Qt::ItemIsSelectable);

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


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 17.9.2010, 20:23
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2838
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 211 раз(а)




Репутация:   34  


вот так можно
eoo.setFlags( eoo.flags() &= ~Qt::ItemIsSelectable )

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Daan
  опции профиля:
сообщение 17.9.2010, 20:52
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 13.9.2010
Пользователь №: 2033

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо. Не знал.

Хотя вот счас попробовал ваш способ, все равно к прежнему состоянию не вернулось. Потом после долгих поисков попробовал eoo.setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled); и тогда получилось. Только я немого не понял, почему флаги перечисляются через оператор |.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 17.9.2010, 21:12
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2838
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 211 раз(а)




Репутация:   34  


Daan, это не мой способ, это побитовые операции )

Кстати, установку флага лучше делать не так
eoo.setFlags(Qt::ItemIsSelectable);

а так
eoo.setFlags(eoo.flags()|Qt::ItemIsSelectable);

- тогда старые флаги не очищаются

Цитата(Daan @ 17.9.2010, 23:52) *
Только я немого не понял, почему флаги перечисляются через оператор


оператор | - это побитовое ИЛИ, оператор & - побитовое И , оператор ~ - это инверсия битов

Флаги не перечисляются, а соединяются в одно двоичное число

например, флаги имеют значения
f1==0x0001
f2==0x0002
f3==0x0004
f4==0x0008


результат логического сложения
(f1|f2|f3|f4) == 0x000F



за подробным описанием - сюда :)
http://ru.wikipedia.org/wiki/%D0%94%D0%B2%...%BD%D0%B8%D1%8F
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.9.2010, 23:48
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9648
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Daan @ 18.9.2010, 0:52) *
Только я немого не понял, почему флаги перечисляются через оператор |
потому-что в описании flags Qt::ItemFlags сказано:
Цитата
Тип ItemFlags - это typedef для QFlags<ItemFlag>. Он хранит комбинацию значений (по ИЛИ) для ItemFlag.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.9.2018, 17:45