Qt实现不规则按钮

公司有需求让我做一个能控制xyz轴的控制面板,同事不知如何做一个好看的不规则按钮,这里教大家一个简便的方法。

先来看看这个button是不是你要的style:

Qt实现不规则按钮

1.用ps制作以上按钮,并且上三种颜色,分别是常态,hover,和按下去的状态,由于色差不大,这里看上去差不多,看看我做的。大小150*150。

Qt实现不规则按钮

2.然后设置css样式表,让鼠标移上去有反应,按下也有反应,css样式不说了,网上都有,这里放出代码:

QPushButton{border-image: url(://image/btn_normal.png);}
QPushButton:hover{border-image: url(://image/btn_hover.png)}
QPushButton:pressed{border-image: url(://image/btn_pressed.png)}

3.制作mask,用于遮挡多余的按键,每个按钮都要做哦,颜色无所谓,但是需要png格式,大小统一150*150。不想显示的就让他透明,看看我做的。

Qt实现不规则按钮

3.然后在qt工程中添加按钮,大小设置为150*150,就是控制盘的大小。

4.到了最关键的一步,就是设置mask。上代码:

QPixmap maskUp("://image/mask_up.png");
ui->btn_up->setMask(maskUp.mask());

5.按照同样方法新建剩余的按钮,并把他们的x,y坐标都写成一个点,这样他们就重合了,看起来就是一个整体。

 

快去试试吧。

放出源代码:https://download.csdn.net/download/figo_lyf001/11129297