qt轻松实现不规则按钮

 

文章已更新,最新地址:http://www.fearlazy.com/index.php/post/134.html

   

 

Qt实现不规则按钮只需要一个函数就能搞定:setMask()

    以QToolButton为例:

    1.准备好一张带透明区域的图片,QToolButton将它设置为图片,并且设置大小为图片大小。

qt轻松实现不规则按钮_第1张图片

    

此时按钮的可见区域以及可点击区域为一个矩形。

    

  2.设置按钮的mask为图片的mask。

qt轻松实现不规则按钮_第2张图片

    大功告成,此时按钮不显示透明区域且不可点击。也就是说图片的mask就是图片的不透明区域。 

 

    题外话:

    setMask的一个重载函数参数是QRegion,QRegion表示一个区域。设置的这个区域就是按钮的可见区域。

qt轻松实现不规则按钮_第3张图片

 由图中可见按钮被分为了两部分,正是我们设置的区域region(由两个矩形组成)。

 

你可能感兴趣的:(Qt)