以下步驟是以按鈕為例,其他控件類似
①在QtDesigner中拖出一個按鈕或者在程序中生成一個按鈕。
②加載一個用來指定按鈕形狀的圖片:
QPixmap pixmap("images/left.png");//這裡是一個左箭頭
③調用此按鈕的setMask()函數來設置控件掩碼,參數是從pixmap中提取的位圖掩碼pixmap.mask():
ui->leftButton->setMask(pixmap.mask());
④注意:最好將圖片的大小剪裁成和控件一樣大,若圖片過大會出現只使用了圖片的一部分做遮掩,
若圖片過小則只能遮掩控件的一部分。
⑤到此為止只是將控件的形狀改變,若在控件上加上背景圖或圖表,會更漂亮:
ui->leftButton->setStyleSheet("QPushButton{border-image:url(images/left.png);}"
"QPushButton:hover{border-image:url(images/left2.png);}"
"QPushButton:pressed{border-image:url(images/left3.png);}");
這裡是通過QSS設置了按鈕的常態、指針懸停、按下三個狀態的背景圖。
下面的實例是視頻監控系統中用到的八方向雲台控制的操作盤原型,每個方向都是用箭頭圖片做掩碼後生成的異形按鈕。
效果如圖:
常態
鼠標懸停
按鈕被按下
源碼下載地址:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2013年資料/4月/22日/Qt中通過設置位圖掩碼生成異形控件