• 5537阅读
  • 3回复

[提问]不规则toolbutton的问题 [复制链接]

上一主题 下一主题
离线tangxunmin
 

只看楼主 倒序阅读 楼主  发表于: 2012-06-07

按照:

ui.toolButton->setIcon(QIcon(tr("./images/test.png")));
ui.toolButton->setIconSize(QSize(40, 40));


QPixmap pixmap("./images/test.png");
ui.toolButton->setMask(pixmap.mask());
ui.toolButton->setFixedSize(40,40);

的方式做不规则按钮,test.png图 大小是40x40的。
可是运行出来的toolbutton效果如图:

在用个pushbutton效果出来如图:

不知道是啥情况。请教各位啊……
离线shiziyang

只看该作者 1楼 发表于: 2012-06-07
楼主是想要把按钮做成该图的样子吗,icon和背景是不一样的。
对该按钮设置stylesheet
QPushButton
{
border-image: url:"image的路径";
}
离线tangxunmin

只看该作者 2楼 发表于: 2012-06-07
回 1楼(shiziyang) 的帖子
不是设置背景图,是那种 不规则按钮,就是点击图片上没有颜色部位 不用反应的意思
离线shiziyang

只看该作者 3楼 发表于: 2012-06-07
回 2楼(tangxunmin) 的帖子
这样啊,好像是要用setMask的,重新实现paintevent去绘图,然后在resizeevent中把图像的mask设置到控件上,如果控件大小不变的话不用resizeevent在外面设置mask也成
像这样设置mask
先读取图像到image

            image = image.scaled(button->width(), button->height());
            button->setMask(image.createMaskFromColor(QColor(0,0,0,0), Qt::MaskInColor));
这是图像拉伸的写法,图像要平铺的话自己写吧



先用之前的qss试试,我记得只要图有透明色用qss直接就有效果的
快速回复
限100 字节
 
上一个 下一个