Как нарисовать каретку / стрелку внизу QDialog на qt5
Я хочу нарисовать верхнюю или нижнюю часть курсора / стрелки окна qt. Я не могу найти никаких документов, касающихся этого.
Как я могу выполнить эту задачу с qt5? Я искал все возможные слова, но ничего не могу найти.
Может ли это быть применено к QDialog или необходимому qml? Мой первый выбор - QDialog, так как у меня уже есть веб-движок и другие qwidgets в QDialog.
Я использую C++.
1 ответ
Большинство оконных менеджеров не поддерживают непрямоугольные окна напрямую, а это значит, что если вы хотите сделать что-то подобное, вам нужно подделать его, сделав окно достаточно большим, чтобы включать в себя как его обычный контент, так и желаемую форму каретки. внутри области окна, и делая окно прозрачным в верхней части.
Для этого позвоните setAttribute(Qt::WA_TranslucentBackground)
а также setAttribute(Qt::WA_FramelessWindowHint)
в вашем диалоге и переопределить paintEvent(QPaintEvent *)
рисовать фон диалога только для тех частей диалога, которые вы хотите сделать непрозрачными.