Russian Qt Forum
Октябрь 02, 2024, 11:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос больше по С++  (Прочитано 3919 раз)
pakulo
Гость
« : Май 19, 2007, 17:16 »

Вопрос больше по С++, но встречал я это в сорцах Qt.
Обьясните, пожалуйста, что значит даная запись.
QStyleOption *option;
option->state &= ~(QStyle::State_HasFocus | QStyle::State_MouseOver);
Записан
Gryz
Гость
« Ответ #1 : Май 19, 2007, 17:22 »

в state хранится соcтояние, описанное битами - флажками. Скорее всего, это переменная типа int.
Данной операцией мы обнуляем биты, которые описывают состояния QStyle::State_HasFocus и QStyle::State_MouseOver. Потом эту информацию можно как-то использовать.
Записан
pakulo
Гость
« Ответ #2 : Май 19, 2007, 19:44 »

а что означает данный значок ~?
Записан
vregess
Гость
« Ответ #3 : Май 19, 2007, 22:15 »

Цитата: "pakulo"
а что означает данный значок ~?

option->state &= ~(QStyle::State_HasFocus | QStyle::State_MouseOver);
дпустим
option->state= 01100101

QStyle::State_HasFocus=00000000

QStyle::State_MouseOver= 01000000


QStyle::State_HasFocus | QStyle::State_MouseOver=
00000000
или
01000000
равно
01000000

~(QStyle::State_HasFocus | QStyle::State_MouseOver)=
10111111

option->state &= ~(QStyle::State_HasFocus | QStyle::State_MouseOver)=
01100101
и
10111111
равно
00100101

те мы просто убираем биты либо QStyle::State_HasFocus, либо QStyle::State_MouseOver (либо биты обоих) из option->state
это битовые операции
Записан
pakulo
Гость
« Ответ #4 : Май 19, 2007, 23:56 »

Спасибо ОГРОМНОЕ!!!!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.