zoukankan      html  css  js  c++  java
  • Qt界面设计1

    最近刚接触Qt 对于QML做界面感觉已经很轻松了,但是想尝试一下GUI..准备做一个理财的小软件 ....慢慢记录我的一点一滴的学习经历.

    自己封装界面UI 遇到了好多新手级别的问题=_=!!! 

    1、界面透明 方法好多设置pattle 等等这里我就用这一个

    ydw.setWindowFlags(Qt::FramelessWindowHint);   //在设置  Qt::WA_TranslucentBackground 属性 之前必须去掉窗体的标题栏

    ydw.setAttribute(Qt::WA_TranslucentBackground);  //设置窗体透明 前面必须先调用...Qt文档上说的

    2、 设置透明窗体并且贴图      

           this->setWindowFlags(Qt::FramelessWindowHint);//设置窗体无边框   
           this->setAttribute(Qt::WA_TranslucentBackground);//设置背景透明
           QPixmap pic;//支持多种图片 另外QBitmap是单一颜色图像可以自己看效果
           pic.load(":/image/qqframe.png");//加载图像
           this->resize(pic.size());//设置窗体和图片一样大  弄一张圆角图片就能实现圆角窗体了
     
     
    voidYdwWindow::paintEvent(QPaintEvent*)  //然后在窗体的paintEvent虚函数进行贴图 利用QPainter  OK
    {
    
    
    QPainterpainter(this);
    painter.drawPixmap(0,0,pic);//绘制图像
    }

    3、圆角实现原理

                    QBitmap objBitmap(size()); //QPainter用于在位图上绘画

            QPainter painter(&objBitmap); //填充位图矩形框(用白色填充)
            painter.fillRect(rect(),Qt::white);//白色rgb 255 255 255 用来和图片异或
            painter.setBrush(QColor(86,78,72)); //在位图上画圆角矩形(用黑色填充)做为重叠区
            painter.drawRoundedRect(rect(),windowRadius,windowRadius); //绘制圆角
            setMask(objBitmap);//使用setmask进行 背景一伙出现圆角
  • 相关阅读:
    最能激怒程序猿的十句话()
    程序员是如何被外行给逼疯的?
    Linux 平台安装Oracle Database 12c
    替代恐慌你有吗?程序员会被深度学习技术淘汰吗?
    1006 换个格式输出整数 (15 分)C语言
    1021 个位数统计 (15 分)C语言
    1010 一元多项式求导 (25 分)C语言
    1009 说反话 (20 分)C语言
    1008 数组元素循环右移问题 (20 分)C语言
    1056 组合数的和 (15 分)C语言
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3292022.html
Copyright © 2011-2022 走看看