• 6161阅读
  • 7回复

[讨论]QPainter如何绘制按钮背景 [复制链接]

上一主题 下一主题
离线he_good
 
只看楼主 倒序阅读 楼主  发表于: 2012-06-23
关键词: QT4
    QPainter painter(qp);
    painter.drawPixmap(0,0,400,700,QPixmap("F:\psu.jpeg"));
以上代码如果painter参数为this就能正常绘制并且显示,但是一旦指定此参数为某个按钮绘制无效   这是为什么?  如何给QPushButton按钮绘制自定义背景
离线jdwx

只看该作者 1楼 发表于: 2012-06-23
回 楼主(he_good) 的帖子
继承QPushButton,重写paintEvent,在那里绘图,其它的地方不能绘图。
Qt就是这样的,和MFC不同,MFC可以在任何地方绘图,也可以在桌面、标题栏上绘图,Qt还做不到。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线he_good
只看该作者 2楼 发表于: 2012-06-24
回 1楼(jdwx) 的帖子
   岂不是就为了给按钮绘制给背景得专门建一个类继承QPushButton来绘制背景?
离线he_good
只看该作者 3楼 发表于: 2012-06-24
回 10楼(h_good) 的帖子
xxxxxxxxx
离线jdwx

只看该作者 4楼 发表于: 2012-06-24
回 2楼(he_good) 的帖子
就是这么回事,不给你的按钮写一个专门的类不行。
莫非你要用QSS,QSS给一个按钮美化还是不错的。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 5楼 发表于: 2012-06-24
QPainter如果想在QWidget上绘制的话只能在paintEvent中进行,但是在其他device上进行绘制的话限制会少很多
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线he_good
只看该作者 6楼 发表于: 2012-06-24
OK
thank a lot to roywillow,jdwx.
离线ws_wll
只看该作者 7楼 发表于: 2012-06-25
如果只是单纯的设置一张背景图片的话,个人觉得还是用QSS吧,就像写html语言样,很好用。
快速回复
限100 字节
 
上一个 下一个