Цвет фона QToolTip не обрезается по радиусу границы

Я сделал так, чтобы мои подсказки были такими (не совсем те цвета)

QToolTip {
    border: 1px solid blue;
    border-radius: 10px;
    background-color: red;
}

Но фон не обрезается по углам:

Почему это не обрезается?

1 ответ

Через два года после того, как ваш вопрос был задан, борется с той же проблемой, с помощью экспериментов и упорно прибегая к помощи я пришел к следующему:

  • Вы не можете получить то, что вы хотите только с CSS, а не с виджетами
  • QToolTip на самом деле является QLabel
  • Реализация настраиваемой всплывающей подсказки - немного больше работы, но только немного: setAttribute(Qt::WA_TranslucentBackground); + setMask() отлично работают, как и другие, более простые способы реализации прозрачности виджетов

Наконец, если вы действительно в этом заинтересованы, рекурсивный обход дочерних элементов виджета и установка фильтра событий может быть достаточным решением, например, что-то вроде:

if (event->type() == QEvent::ToolTip) {
    QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
    // Your code here
    return true;
}

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

Другие вопросы по тегам