成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

QtWidget 實(shí)現(xiàn)不規(guī)則窗體與按鈕

移動(dòng)開(kāi)發(fā)
本文接受的是QtWidget 實(shí)現(xiàn)不規(guī)則窗體與按鈕,QWidget類是所有用戶界面對(duì)象的基類,一個(gè)小小的實(shí)現(xiàn)效果技巧與大家分享。

QWidget有很多成員函數(shù),但是它們中的一些有少量的直接功能:例如,QWidget有一個(gè)字體屬性,但是它自己從來(lái)不用。有很多繼承它的子類提供了實(shí)際的功能,比如QPushButton、QListBox和QTabDialog等等。

關(guān)鍵是使用

  1. void QWidget::setMask ( const QBitmap & bitmap )  
  2. void QWidget::setMask ( const QRegion & region )  
  3. void QWidget::setMask ( const QRegion & region )  
  4. Causes only the parts of the widget which overlap region to be visible.  

只有widget與region重疊的地方才會(huì)顯示出來(lái). 自己構(gòu)造一個(gè)QRegion就行了.

  1. void ShapedClock::resizeEvent(QResizeEvent * /* event */) {  
  2.     int side = qMin(width(), height());  
  3.     QRegion maskedRegion(width() / 2 - side / 2, height() / 2 - side / 2, side,  
  4.                          side, QRegion::Ellipse);  
  5.     setMask(maskedRegion);  

void QWidget::setMask ( const QBitmap & bitmap )

Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible. If the region includes pixels outside the rect() of the widget, window system controls in that area may or may not be visible, depending on the platform.

只有在bitmap中像素?cái)?shù)據(jù)是1的地方才會(huì)顯示出widget的相應(yīng)像素來(lái). Bitmap就是像素?cái)?shù)據(jù)只有兩個(gè)值: 0和1 (1 bit-depth, monochrome).

 

  1. QLabel topLevelLabel;  
  2. QPixmap pixmap(":/images/tux.png");  
  3. topLevelLabel.setPixmap(pixmap); 

     topLevelLabel.setMask(pixmap.mask()); // 可以不使用轉(zhuǎn)換的, 使用一張專門的bitmap圖片.上面的這些方式用一普通的QWidget就可以了. 當(dāng)然, 對(duì)于窗口而言, 很多時(shí)候我們要把它的標(biāo)題欄去掉:widget->setWindowFlags(Qt::FramelessWindowHint);但是對(duì)于不規(guī)則的QPushButton就有些特殊, 要使用QIcon來(lái)處理:

  1. button->setIcon(QIcon("xxx.png"));
  2. button->setIconSize(w, h);
  3. button->setMask(maskBitmap/*maskedRegion*/);
  4. button->setFixedSize(w, h);   // 這個(gè)當(dāng)然最好使用它的icon的大小. 

小結(jié):QtWidget 實(shí)現(xiàn)不規(guī)則窗體與按鈕的內(nèi)容介紹完了,編程的友人們總是喜歡做些比較炫的效果,QtWidget幫了我們的大忙!最后希望本文對(duì)你有幫助。

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2015-07-17 13:31:20

按鈕單獨(dú)控制

2010-08-31 09:46:23

C#

2009-12-25 10:20:28

WPF窗口

2010-09-08 17:20:42

CSS

2009-07-10 11:31:45

Swing支持透明和不規(guī)則窗口

2010-01-11 15:31:04

VB.NET拖動(dòng)窗體

2015-02-02 16:21:26

android瀑布流圖片加載

2010-09-14 10:34:17

DIV CSS

2020-11-10 15:22:46

算法PythonIoU

2021-03-30 07:47:46

SVG 濾鏡 CSS技巧

2022-12-22 08:34:22

CSS不規(guī)則圖形

2009-09-07 04:59:12

C#模式窗體

2011-06-15 09:24:36

Qt Widget Model

2009-09-07 06:56:46

C#透明窗體

2011-06-20 17:17:11

Qt Widget QWidget

2011-06-20 16:54:40

Qt Widget model

2022-12-28 07:48:40

六邊形動(dòng)畫(huà)CSS

2024-01-03 08:30:54

Redis分布式項(xiàng)目

2011-02-16 14:15:58

FringAndroid應(yīng)用iOS應(yīng)用

2009-09-27 13:38:03

Silverlight
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美黄色免费网站 | 国产精品久久福利 | 97免费视频在线观看 | 日韩精品久久久 | 国产一级视频在线观看 | 欧美激情精品久久久久久 | 91精品国产综合久久久久久 | 美女久久久久久久久 | 国产精品久久久久一区二区三区 | 亚洲欧洲av在线 | 久久久久久免费毛片精品 | 天天久| 91传媒在线观看 | 亚洲精品国产偷自在线观看 | 91偷拍精品一区二区三区 | 黄色在线观看 | 日本网站免费观看 | 日韩一级免费观看 | 日韩精品一区二区三区在线观看 | 欧美日韩精品一区二区三区视频 | av官网在线 | 天堂中文av | 亚洲综合在线视频 | 日韩影院在线观看 | www.亚洲.com | 亚洲精品无人区 | 中文字幕亚洲精品 | 成人精品高清 | 91影院| 天天看天天干 | 日韩欧美视频网站 | 亚洲欧美激情精品一区二区 | 一区二区影院 | 日韩欧美精品一区 | 人人干人人干人人干 | 欧美日韩免费一区二区三区 | 1区2区视频 | 粉嫩国产精品一区二区在线观看 | 国产精品美女久久久久久久久久久 | 91中文在线观看 | 国产精品免费av |