Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: "побитовое чтение int" или "помогите с AlignmentFlag"
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
FantasyOr
Доброго времени суток.
небольшая загвоздочка. Есть QTableMotel и ее модель доступа к данным по средствам QModelIndex. при попытке достать выравнивание текста ячейки с помощью "index.data(Qt::TextAlignmentRole).toInt()" возвращается смешанное выравнивание и по горизонтали и по вертикали, задача разделить на AlignmentFlag для разных направлений.

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

может Вы подскажете лучший способ?
Спасибо
igor_bogomolov
Можно делать так

Qt::Alignment alignFlags (index.data(Qt::TextAlignmentRole).toInt());
if (alignFlags.testFlag(Qt::AlignLeft)) {
    // ...
}
FantasyOr
Спасибо, тоже не элегантный вариант, писать придется кучу строк.
но что поделать.
Спасибо.
AntonH851
А можно использовать Qt::AlignHorizontal_Mask и Qt::AlignVertical_Mask

int horizontal_align = align & Qt::AlignHorizontal_Mask;
int vertical_align = align & Qt::AlignVertical_Mask;
FantasyOr
Мммм вот это красиво.
Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2022 IPS, Inc.