Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Klerfe от Февраль 07, 2017, 12:33



Название: Как убрать "уголки" у custom QMenu под Linux
Отправлено: Klerfe от Февраль 07, 2017, 12:33
Здравствуйте!

Вначале работал под  Win7
Решил сделать меню с закруглёнными краями при помощи QSS.
Код:
QMenu { border-radius: 5px; }
Однако, после применения setStyleSheet() стали  видны белые уголки по краям меню. Немного покапавшись на иностранных форумах было найдено решение:
Код:
void MainWindow::setFlagMenu(QMenu *_menu){
    _menu->setWindowFlags(_menu->windowFlags() | Qt::NoDropShadowWindowHint | Qt::FramelessWindowHint);
        _menu->setAttribute(Qt::WA_TranslucentBackground);
        _menu->setAttribute(Qt::WA_NoSystemBackground);
}

И всё бы хорошо, но основная платформа это linux и точно такой же фокус с флагами и атрибутами там не получается.
Вопрос в том как убрать эти "уголки". Пока никак не удаётся найти решение или флаги, которые выполняли бы эти же функции.
Буду благодарен за любую помощь или подсказки.

версия Qt 5.5.1 (GCC 4.7.2, 64 бита)
Так же прилагаю сам тестовый проект (извиняюсь за архив в архиве, иначе не получалось в 500Кб уложиться)  


Название: Re: Как убрать "уголки" у custom QMenu под Linux
Отправлено: Klerfe от Февраль 13, 2017, 16:53
А дело оказалось решалось очень просто, чтобы флаги и атрибуты заработали нужно было в настройках тем рабочего стола включить композит менеджер, а у него соответственно тени и прозрачность.


Название: Re: Как убрать "уголки" у custom QMenu под Linux
Отправлено: lit-uriy от Февраль 13, 2017, 20:33
И что, каждый юзер будет этим заниматся ради одной программы?