当前位置: 首页 > news >正文

长沙商城网站建设报价公示电话网站源码

长沙商城网站建设报价公示,电话网站源码,网络综艺节目策划方案,浏览加速器在Qt中设置widget背景颜色或者图片方法很多种#xff1a;重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等。 但是各种方法都有其注意事项#xff0c;如果不注意则很容易陷入麻烦中。 1#xff1a;setStyleSheet() 这个函数我一直很喜欢使用#xff0c;因为只…在Qt中设置widget背景颜色或者图片方法很多种重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等。       但是各种方法都有其注意事项如果不注意则很容易陷入麻烦中。 1setStyleSheet()      这个函数我一直很喜欢使用因为只要写一句就可以实现效果比其他方法都简单但是其却有一个很值得注意的地方也就是这个地方让我大吃苦头。     亦即①该函数只能用于设置有父窗口的子窗口的背景如果一个窗口没有子窗口则无法使用该函数来设置背景颜色或图                             片              ②同时对于一个父窗口而言如果我们用setStyleShette设置了其样式而对于其子窗口如果没有用同样的函数来设                    置的话 则其子窗口的样式和其父窗口完全一致亦即其集成了自己父窗口的样式              ③延伸对顶层窗口没有父窗口其有若干个子窗口则当我们用setStyleShette来设置这个顶层窗口的样式后依据①可知该父窗口本身没有任何变化亦即设置没有生效而其子窗口只要子窗口本身没有用setStyleShette来设置自己的样式表则其就是用的自己父窗口的样式表      例如      主窗口没有父类为MainWin MainWin::MainWin() { this-setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG)); iButton new QPushButton(this); iLabel new QLabel(iButton); }     运行一下效果如下  亦即虽然我们设置的是顶层的父窗口但是该样式却是在其子窗口中生效而顶层父窗口没有任何变化 这验证了①。 修改一下上例代码 MainWin::MainWin() { this-setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG)); iButton new QPushButton(this); iLabel new QLabel(iButton); iLabel-setStyleSheet(background-image:url(:/bmp/1257253475842.jpg)); }        则运行效果如下    可见子窗口只有调用setStyleSheet()设置了自己的样式后才可以隔断父窗口的样式否则其将是用父窗口的样式。        再修改一下代码 MainWin::MainWin() { iButton new QPushButton(this); iButton -setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG)); iLabel new QLabel(iButton); } 运行一下效果如下 可见设置有父窗口的子窗口时setStyleSheet()一定生效   后来我又思考了一个问题那就是对于顶层父窗口如果我setStyleSheet()设置了样式表而对其子窗口我用其他方法比如用QPalette调色板来设置背景图片/颜色这时子窗口的背景到底是由继承自父窗口的样式表决定呢还是由子窗口本身的QPalette调色板决定呢 再次修改代码 MainWin::MainWin() { this-setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG)); iButton new QPushButton(this); iLabel new QLabel(iButton); QPalette palette; palette.setBrush(iLabel-backgroundRole(),QBrush(QImage(:/bmp/1257253475842.jpg))); iLabel-setPalette(palette); iLabel-setAutoFillBackground(true); } 此段代码中我用QPalette来设置子窗口的背景图片看下到底是样式表还是调色板生效效果如下     由此可见一旦顶层窗口设置了样式表则其子窗口无论用什么方法来设置背景都会不生效 那如果不是顶层窗口而仅仅是一般窗口设置了样式表呢再次修改代码 MainWin::MainWin() { iButton new QPushButton(this); iButton -setStyleSheet(background-image:url(:/bmp/IMG_0345.JPG)); iLabel new QLabel(iButton); QPalette palette; palette.setBrush(iLabel-backgroundRole(),QBrush(QImage(:/bmp/1257253475842.jpg))); iLabel-setPalette(palette); iLabel-setAutoFillBackground(true); } 运行效果同上这说明不管是顶层窗口还是一般窗口只要用setStyleSheet设置了样式表则其子窗口用其它方式设置背景颜色/图片均不生效只能用同样方式setStyleSheet来设置更改 为了验证上边的结论再次修改代码 MainWin::MainWin() iButton new QPushButton(this); iLabel new QLabel(iButton); QPalette palette; palette.setBrush(iLabel-backgroundRole(),QBrush(QImage(:/bmp/1257253475842.jpg))); iLabel-setPalette(palette); iLabel-setAutoFillBackground(true); } 运行一下   此时调色板才生效这也间接证明了上述结论。 总结      1不要在顶层窗口无父类的窗口中使用setStyleSheet() 否则其一父窗口的背景不会改变其次其子窗口的背景设置方法变得局限唯一不能再使用其它方法      2如果一个一般窗口非顶层窗口还有子窗口那最好不要使用setStyleSheet()来设置其背景颜色因为虽然此时该窗口的背景设置是生效的但是其子窗口的背景设置也变得局限唯一只能使用setStyleSheet而不能使用其它方法  当然你如果就是只想使用这种方法那也完全可以      说白了就是不要再MainWindow中使用setStyleSheet()       而上边之所以强调拓宽子窗口设置背景的方法范围这是因为如果只能用setStyleSheet样式表来设置背景图片的话该图片是无法缩放的如果其大小与widget窗口大小不相符则我们无法用程序来实现图片的缩放除非我们直接处理图片使其大小与widget窗口相符 而如果不局限于用setStyleSheet样式表来设置的话我们可以选择用QPalette调色版其内部setBrush()之前我们完全可以先对图片进行scale缩放再刷到窗口上这样就避免直接去处理图片灵活性强一点   本文来自CSDN博客转载请标明出处http://blog.csdn.net/NRC_DouNingBo/archive/2010/05/07/5565212.aspx  转载于:https://www.cnblogs.com/tiantiantian-dianzi/p/5814042.html
http://www.pierceye.com/news/860966/

相关文章:

  • 网站建设公司领导致辞自己可以开发一个软件吗
  • 高端网站设计平台专门做二手书网站或app
  • 系网站建设工作总结大庆建设网站表格下载
  • 免费建站网站seo长春专业网站制作
  • 做网站公司哪家正规公司网站如何更改内容
  • 广州黄埔区建设局网站局wordpress怎么看访问量
  • 佛山找人做网站国家建设免费论文网站
  • 网站内容建设ppt网站建设header
  • 图书馆网站建设费用青海省住房建设厅网站
  • 重庆网站供奉战犯wordpress 关键字链接
  • 给个2021站你们懂得不花钱的深圳手机网站建设
  • 织梦图片自适应网站源码php企业网站源码推荐
  • 网站建网站建设网页微信头像logo在线制作
  • 微网站模板怎么做买了域名如何做网站
  • 新华美玉官方网站在线做维护一个网站要多少钱
  • 网站内容由什么组成部分网页网站设计价格
  • wordpress方框里面打勾两个域名同一个网站做优化
  • 个人怎么做公司网站闲置电脑做网站服务器
  • 有没有什么 网站能够做试卷wordpress写 a href
  • 西安 北郊网站建设网站上传图片加水印
  • 沈阳网站制作哪家好包头爱出行app最新版本
  • 怎么用IP做网站地址网站如何投放广告
  • 试述电子商务网站的建设流程太原建站的模板
  • 微信群投票网站怎么做的企业门户网站怎么做
  • 建网站平台 优帮云嘉兴营销型网站
  • 建筑类专业做教育的网站ui设计app
  • 郑州做营销型网站的公司什么叫社交电商平台
  • 外国做问卷可以赚钱的网站做中国菜的外国网站
  • 青岛市建设厅网站快递网站建设
  • 昆明网站WordPress文章怎么折叠