crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> "побитовое чтение int" или "помогите с AlignmentFlag"
FantasyOr
  опции профиля:
сообщение 15.9.2010, 15:32
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 75
Регистрация: 13.8.2010
Пользователь №: 1956

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




Репутация:   0  


Доброго времени суток.
небольшая загвоздочка. Есть QTableMotel и ее модель доступа к данным по средствам QModelIndex. при попытке достать выравнивание текста ячейки с помощью "index.data(Qt::TextAlignmentRole).toInt()" возвращается смешанное выравнивание и по горизонтали и по вертикали, задача разделить на AlignmentFlag для разных направлений.

Думал как-нибудь считывать по битам и в зависимости от того на каком бите у нас появляется 1 ставить те или иные значения флагов.

может Вы подскажете лучший способ?
Спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 15.9.2010, 15:45
Сообщение #2


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

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Можно делать так

Qt::Alignment alignFlags (index.data(Qt::TextAlignmentRole).toInt());
if (alignFlags.testFlag(Qt::AlignLeft)) {
    // ...
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FantasyOr
  опции профиля:
сообщение 15.9.2010, 15:53
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 75
Регистрация: 13.8.2010
Пользователь №: 1956

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




Репутация:   0  


Спасибо, тоже не элегантный вариант, писать придется кучу строк.
но что поделать.
Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AntonH851
  опции профиля:
сообщение 15.9.2010, 15:56
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 20.2.2010
Из: Шебекино
Пользователь №: 1475

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




Репутация:   0  


А можно использовать Qt::AlignHorizontal_Mask и Qt::AlignVertical_Mask

int horizontal_align = align & Qt::AlignHorizontal_Mask;
int vertical_align = align & Qt::AlignVertical_Mask;
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FantasyOr
  опции профиля:
сообщение 20.9.2010, 15:49
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 75
Регистрация: 13.8.2010
Пользователь №: 1956

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




Репутация:   0  


Мммм вот это красиво.
Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 1.10.2022, 1:53