Как нарисовать каретку / стрелку внизу QDialog на qt5

Я хочу нарисовать верхнюю или нижнюю часть курсора / стрелки окна qt. Я не могу найти никаких документов, касающихся этого.

Как я могу выполнить эту задачу с qt5? Я искал все возможные слова, но ничего не могу найти.

Может ли это быть применено к QDialog или необходимому qml? Мой первый выбор - QDialog, так как у меня уже есть веб-движок и другие qwidgets в QDialog.

Я использую C++.

Вот что я имею в виду: образец

1 ответ

Решение

Большинство оконных менеджеров не поддерживают непрямоугольные окна напрямую, а это значит, что если вы хотите сделать что-то подобное, вам нужно подделать его, сделав окно достаточно большим, чтобы включать в себя как его обычный контент, так и желаемую форму каретки. внутри области окна, и делая окно прозрачным в верхней части.

Для этого позвоните setAttribute(Qt::WA_TranslucentBackground) а также setAttribute(Qt::WA_FramelessWindowHint) в вашем диалоге и переопределить paintEvent(QPaintEvent *) рисовать фон диалога только для тех частей диалога, которые вы хотите сделать непрозрачными.

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