QT 使用QSS实现圆角对话框

圆角对话框有很多办法,一般是用代码重绘的方式,比较复杂,这一个高仿360的界面给的代码,比较复杂,放入我的QDialog的窗口总是不生效:

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow){

ui->setupUi(this);

setWindowFlags(Qt::FramelessWindowHint);//隐藏边框和标题栏

//生成一张位图

QBitmap objBitmap(size());

//QPainter用于在位图上绘画

QPainter painter(&objBitmap);

//填充位图矩形框(用白色填充)

painter.fillRect(rect(),Qt::white);

painter.setBrush(QColor(0,0,0));

//在位图上画圆角矩形(用黑色填充)

painter.drawRoundedRect(this->rect(),5,5);

//使用setmask过滤即可

setMask(objBitmap);

//设置背景

QPalette pal;

QPixmap pixmap(QDir::toNativeSeparators

(":/image/frame.png"));

pal.setBrush(QPalette::Window, QBrush(pixmap));

setPalette(pal);

}

简单实现圆角窗口

实际发现,可以简单的通过QT的 styleSheet 来实现这一功能,相当简单好用。

思路是把QDialog 背景透明,然后在QDialog再放上一个圆角的QFrame 即可实现圆角效果!

2.1 初始化对话框

OnePicker::OnePicker(QWidget *parent) :

RoundCornerPicker(parent),

ui(new Ui::OnePicker)

{//

ui->setupUi(this);

setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);

}

2.2 设置相应样式

其中对话框的样式是

border: none; background-color: transparent;

用来作直正的背景的Frame样式

border-image: url(:/resource/images/picker_bk.png);

border-width: 1px 1px 1px 1px;

border-style: solid;

border-color: rgb(76,76,76);

border-radius:6px;

2.3 全局样式表

可以把上述定义放入全局的qss样式表中,这样所有对话框自动变成圆角矩表

QDialog {

border:none;

background-color:transparent;}

QDialog #DialogBk {

border-image:url(:/resource/images/picker_bk.png);

border-width:1px 1px 1px 1px;

border-style:solid;

border-color:rgb(76,76,76);

border-radius:6px;

}

最终效果如下

不直接对QDialog 做圆角背景的原因

为什么使用QFrame的原因是强制把QDialog做成圆角背景,仍然会显示四周的直角边框,这样极不美观。

qdialog 圆角_QT 使用QSS实现圆角对话框相关推荐

  1. css怎么设置圆角背景,CSS新特性:圆角边框多栏Gird布局背景设置

    到现在为止,只有一些已经工作的CSS3特性. 到现在为止,只有一些已经工作的特性,他们中的一些如下: 圆角 从web2.0开始,开始流行使用圆角,如果你不使用圆角,你的网站可能不会被列入web2.0网 ...

  2. android 容器圆角,flutter Container容器实现圆角边框

    本文实例为大家分享了flutter Container容器实现圆角边框的具体代码,供大家参考,具体内容如下 在这里使用 Container 容器来实现圆角矩形边框效果 1 圆角矩形边框 Contain ...

  3. android+圆角屏幕方法,android屏幕圆角实现方法的示例代码

    现在很多全面屏手机的屏幕四角做成圆的,其圆润的感觉给人带来别样的视觉体验.先来一张我大锤子镇楼(不是广告呀,锤子没给钱),大家来直观感受一下圆角的魅力. 锤子.jpg 当然这种是硬件上实现的,我怀疑也 ...

  4. android 代码设置圆角,Android中用Shape实现圆角和局部圆角

    本文讲解如何实现布局边框的部分圆角 大家可能都知道圆角实现其实很简单, 在drawable文件夹下新建xml文件加入以下代码 情景1: 四个角均为圆角 android:shape="rect ...

  5. qdialog 圆角_Qt 的一些心得(背景设置,圆角,半透明)

    一. 背景刷成黑色,前景色设为白色. 方法一.paltette方式,经测试,该方法不会影响到其他控件,推荐使用 QPalette bgpal = palette(); bgpal.setColor ( ...

  6. Android轮播图实现图片圆角,Android开发实现图片圆角的方法

    本文讲述了Android开发实现图片圆角的方法.分享给大家供大家参考,具体如下: Bitmap myCoolBitmap = ... ; // int w = myCoolBitmap.getWidt ...

  7. android shape 圆角百分比,Android shape显示圆角问题

    当需要定义一个圆角效果,当在ADT中预览,没有有效果时,只要运行就可以了! xmlns:Android="http://schemas.android.com/apk/res/android ...

  8. Android 实现圆角布局,变相实现圆角图片效果(不同位置不同弧度)

    小菜最近在处理图片的圆角,不止是四个角全是圆角,还包括单左侧/单右侧/对角线方向的圆角.因为自己太菜只能寻求网上的大神,发现一个自定义圆角布局,这样可以变相的解决我的需求,还可以实现更多的圆角效果,不 ...

  9. android 内凹的圆角,css实现内凹圆角,利用圆角反向进行(转)

    最近写到小程序,设计方面有一个设计图涉及内凹圆角问题.网上百度好多种,都是经过径向渐变实现的.虽然能实现单个角,可是当四个角合在一块儿就很麻烦了. 上设计图css 径向渐变实现:html backgr ...

最新文章

  1. android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating cl
  2. 专访郭霖:成长无止境
  3. linux下crontab实现定时服务详解
  4. Pycharm使用技巧(转载)
  5. Lab01:Xv6 and Unix utilities
  6. ASP.NET MVC使用Oauth2.0实现身份验证
  7. C#LeetCode刷题之#11-盛最多水的容器(Container With Most Water)
  8. String.raw()方法
  9. python怎么设置回文数_python如何写一个函数判断回文数?
  10. 【git系列】合并分支进master
  11. NetSet:一款功能强大的自动化网络流量安全增强工具
  12. 高通处理器命名中文化
  13. axios基于常见业务场景的二次封装
  14. 深度模型 loss为nan解决方案详解
  15. 业界常用的技术评估指标和方法,
  16. 数值分析常见基本算法及MATLAB代码总结
  17. Android开发—基于OpenCV实现相机实时图像识别跟踪
  18. 7000字爆肝!我把14个自学编程的压箱底网站全部分享给你们啦
  19. 数字图像处理学习笔记(三)
  20. 群晖家用NAS选购心得

热门文章

  1. 【Java设计模式】简单学抽象工厂模式——你好,微信还是支付宝
  2. html网络语言什么意思,网络语言开车什么意思 网络用语开车是什么意思
  3. C/C++中各种类型char、int、long、double等数据范围
  4. OpenGLES学习(一)图片显示
  5. 微风:什么是UI设计?
  6. 联想windows无法自动修复此计算机,联想win10自动修复无法开机-联想win10自动修复无法开机方法 - 系统家园...
  7. 计算机课情感态度与价值观,浅谈信息技术课中情感态度价值观的培养
  8. 【论文笔记】PassGAN: A Deep Learning Approach for Password Guessing
  9. java按照模板导出Excel工具类
  10. [Android自定义控件]自定义属性attrs.xml中format