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());//设置窗体和图片一样大  弄一张圆角图片就能实现圆角窗体了
 
 
void YdwWindow::paintEvent(QPaintEvent *)  //然后在窗体的paintEvent虚函数进行贴图 利用QPainter  OK
{
    QPainter painter(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进行 背景一伙出现圆角

 

更多相关文章
  • TCP建立与断开连接以及错误处理(包括部分小问题)   1. TCP建立连接:三次握手,到处都有.需要注意的是ACK确认序列号是SYN携带序列号+1,不是直接相等.基本过程如图所示.   socket程序中调用connect将激发三路握手过程,connect将在成功建立连接或者出错才返回.   (1 ...
  • 昨天写了个对于我来说很复杂的sql语句. 这里先放个图: 现在的需要的数据如图:从product表中拿到id,name两个字段,从buy_contract_Item和sale_contract_Item中拿到quantity,totalMoney这两个字段,再从buy_contract和sale_c ...
  • "只要人人都献出一点爱,世界将变成美好的人间"来自歌曲"爱的奉献".在上海的时间里是我目前为止最为充实.辛苦的一年,但是我反而感觉不到一点疲惫,因为我是为了自己的未来而奋斗,更重要的是我孤身一人在上海时得到各位老师朋友对我的关爱和照顾.我相信IT之路不再孤单, ...
  • 本例介绍使用ProgressDialog 的用法,我们之前也在Dialog中简单介绍过ProgressDialog ,参见Android ApiDemos示例解析(22):App->Dialog ProgressDialog为AlertDialog的子类,ProgressDialog 无需通过 ...
  • 作者:Vamei,转载请先与我联系.阿尔法贸易公司的监控室中,山下远人用手指在空中滑动,大屏幕上的显示画面也随之变化.山下一直在等“桃疆”号的运行报告.由于电磁干扰,飞船运行报告经常会中断.但这艘飞船的方位并没有明显的电磁爆发.这意味着,飞船可能发生了什么故障.山下叹一口气,看来奖金又要泡汤了.“桃 ...
  • 你应该有过这样的遭遇,就是电脑感染上了间谍软件或广告软件.在这种情况下,解决问题的关键就是要在你的硬盘.内存或Windows注册表中找出间谍软件的所在.我最近研究了我的主要网络内的几台机器,以找到间谍软件和广告软件的感染信息.我个人建议,最好能利用一些有效的商业软件和免费软件经常进行这样的检查. 下 ...
一周排行
  • IOS作为一款智能手机,有时在浏览网页,看电子书,打游戏时,如果能够实现全屏,对用户来说有很好的视觉体验,其实实现起来非常的简单,下面我就结合一个简单的代码给大家来分享一下,首先在视图上添加导航栏,工具栏,以图片视图 ...
  • Oracel字符函数replacesubstrtranslate   Oracle .    在Oracle中很常用的3个字符函数    1. substr    SUBSTR(c1,n1[,n2]) 截取指定长度的 ...
  • 简介     SQL Server2012新增了一些内置函数来让开发人员使用起来更加容易.可以减少代码量,下面我们将SQL Server新增的函数分为几类分别探讨一下.   字符串类函数     SQL Server ...
  • p570,硬盘故障. 机器有两个vg,rootvg和datavg,rootvg未做镜像,datavg已做镜像.系统errpt和HMC报硬盘有问题,查看错误代码可能是硬盘有坏道(坏块),在尽量保全用户数据的前提下,要解 ...
  •     1.只为所有者创建global表. // Only create the global table for the singleton 'owner' user //只为所有者创建global table. ...
  • 为何引入Fragment 我们之前的Activity都是都是全屏处理较为简单的单一事务功能,适合于屏幕尺寸较小的智能手机,但是对于平板,有更大的显示空间,运行用户在上面处理更多的功能,例如屏幕左边是email列表,右 ...
  • lengku1987   6 7   Sponsored Links   easyui datagrid checkbox multiple columns have been don ...
  • 一.模板基本元素 1.例子程序 1)urls.py中新增部分 from django.conf.urls import patterns, url, include urlpatterns = patterns('' ...
  • 遇到一个需要用Javascript将文字转换成asp中的urlencode编码 网上查到的全都是escape,和需要的编码不是一回事,好不容易找到的结果 保存下来以备以后使用 js对文字进行编码涉及3个函数:esca ...
  • 1.为什么free是void*,那么它怎么知道要释放多少内存? <UNIX环境高级编程> <C语言编程常见问题解答> <你必须知道的495个C语言问题> <UNIX环境高级编 ...