• 9472阅读
  • 2回复

求QWidget窗口的边界图片效果的实现。 [复制链接]

上一主题 下一主题
离线deepstar
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-16
关键词: StyleSheet界面
最近看到个软件是用QT做的。想研究它的实现原理

原始窗口大小


窗口拉大后


然后我在软件的安装目录找到了原始图片

这个图片应该是窗口的背景图片了。

原始图片被分成九块。所谓的九宫格原理。
我的理解是:
分别在窗口改变时,能使图片四个角的图版保持不变,并仍然占居窗口的四角。
窗口变大后的窗口空隙由中间的五块图片来填充。。
不知道我理解的是否正确。

小弟就是不知道它是如何实现的。哪个高人做个的请指点一,二,希望有个能保证效率的实现方案。

经人告知,这是边界图片原理, C++ GUI Programming with Qt 4里介绍的QstyleSheet 好象只支持QpushButton,
对于QWidget的窗口无法实现。

小弟在此求QWidget窗口的边界图片效果。
有例子最好。多谢
因会爬网而为自己骄傲
离线roywillow

只看该作者 1楼 发表于: 2010-11-16
QWidget
Supports only the background, background-clip and background-origin properties.

看样子QWidget不能用stylesheet了
重载paintEvent自己计算自己绘制吧
或许QImage的scaled函数有帮助
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线cherryjing
只看该作者 2楼 发表于: 2011-01-04
可以看看QT自带的demos/shared/arthurstyle.h和demos/shared/arthurstyle.cpp,就是你所需的
快速回复
限100 字节
 
上一个 下一个