Advertisement

开发一个Qt应用的圆角窗口实现,并仅指定相应的角落参数以达到预期效果

阅读量:

今天有位同事因为一个窗口视觉效果中的圆角问题困扰了一整天。
视觉设计要求窗口的上半部分采用圆角设计,而下半部分则为直角,同时还需具备半透明效果。然而,仅依靠我们现有的QPainter类中的drawRoundedRect方法是无法满足这一需求的,因为该方法绘制的是四个统一的圆角。

相信不少刚开始接触Qt框架的同学们在面对类似问题时都会感到一定程度的困惑。因此,今天我们就来探讨一下如何在窗口中灵活实现对四个角落进行独立设置的圆角方案。

完整工程代码路径如下(开发环境为vs2015+Qt5.9.6):
完整工程路径


先来看一张示意图:

在这里插入图片描述

paintEvent函数的实现方式如下:

复制代码
    void MyWindow::paintEvent(QPaintEvent * event)
    {
    QPainter painter(this);
    painter.setRenderH

全部评论 (0)

还没有任何评论哟~