当前位置: 首页> 科技> 数码 > 厦门微信网站建设_西安短视频培训_长沙今日头条新闻_网上营销新观察网

厦门微信网站建设_西安短视频培训_长沙今日头条新闻_网上营销新观察网

时间:2025/7/9 14:03:14来源:https://blog.csdn.net/A185822153/article/details/144738259 浏览次数:0次
厦门微信网站建设_西安短视频培训_长沙今日头条新闻_网上营销新观察网

        在Qt中,要创建自定义形状的QWidget,可以通过重写QWidgetpaintEvent()函数来实现。以下是一个简单的例子,展示了如何创建一个自定义形状的窗口:

#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPainterPath>class CustomShapeWidget : public QWidget {
protected:void paintEvent(QPaintEvent* event) override {QPainter painter(this);QPainterPath path;// 定义自定义形状路径path.moveTo(10, 10); // 移动到起点path.lineTo(10, 100); // 画一条线到达(10, 100)path.quadTo(100, 200, 190, 100); // 画一条二次贝塞尔曲线到达(190, 100)path.lineTo(190, 10); // 画一条线到达(190, 10)path.closeSubpath(); // 关闭路径// 设置填充规则path.setFillRule(Qt::WindingFill);// 应用填充规则画出自定义形状painter.fillPath(path, Qt::blue);// 画出形状边界painter.setPen(Qt::black);painter.drawPath(path);/************方法2*****************///QPixmap mask(":/TouchWidget_test/cursor.png");//加载掩码图像//setMask(QBitmap(mask.mask())); //设置窗体的掩码图像,抠除图像的白色区域实现不规则窗体//QPalette p;//设置调色板//p.setBrush(QPalette::Window, QBrush(mask));//将调色板的画刷设置为掩码位图,在不规则窗体上显示出掩码位图//setPalette(p);}
};int main(int argc, char* argv[]) {QApplication app(argc, argv);CustomShapeWidget window;window.setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);window.setAttribute(Qt::WA_TranslucentBackground);window.setGeometry(100, 100, 200, 200);window.show();return app.exec();
}

        在这个例子中,我们创建了一个CustomShapeWidget类,它重写了paintEvent()函数来定义一个自定义的形状。我们使用QPainterPath来定义形状的路径,并使用fillPath()来填充路径指定的颜色。这个paintEvent()会在需要重绘窗口时被调用在这个例子中,我们创建了一个CustomShapeWidget类,它重写了paintEvent()函数来定义一个自定义的形状。我们使用QPainterPath来定义形状的路径,并使用fillPath()来填充路径指定的颜色。这个paintEvent()会在需要重绘窗口时被调用.

        运行效果如下:

方法2,也可以实现,如果要移动,可以加入移动窗口函数进行处理。

关键字:厦门微信网站建设_西安短视频培训_长沙今日头条新闻_网上营销新观察网

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: