• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
            關鍵是使用
            void QWidget::setMask ( const QBitmap & bitmap )
            void QWidget::setMask ( const QRegion & region )
            void QWidget::setMask ( const QRegion & region )
            
            Causes only the parts of the widget which overlap region to be visible. 
            只有widget與region重疊的地方才會顯示出來. 自己構造一個QRegion就行了.
            void ShapedClock::resizeEvent(QResizeEvent * /* event */) {
                int side = qMin(width(), height());
                QRegion maskedRegion(width() / 2 - side / 2, height() / 2 - side / 2, side,
                                     side, QRegion::Ellipse);
                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中像素數據是1的地方才會顯示出widget的相應像素來. Bitmap就是像素數據只有兩個值: 0和1 (1 bit-depth, monochrome).
                 QLabel topLevelLabel;
                 QPixmap pixmap(":/images/tux.png");
                 topLevelLabel.setPixmap(pixmap);
                 topLevelLabel.setMask(pixmap.mask()); // 可以不使用轉換的, 使用一張專門的bitmap圖片.
            上面的這些方式用一普通的QWidget就可以了. 當然, 對于窗口而言, 很多時候我們要把它的標題欄去掉:
            widget->setWindowFlags(Qt::FramelessWindowHint);


            但是對于不規則的QPushButton就有些特殊, 要使用QIcon來處理:
            button->setIcon(QIcon("xxx.png"));
            button->setIconSize(w, h);
            button->setMask(maskBitmap/*maskedRegion*/);
            button->setFixedSize(w, h); // 這個當然最好使用它的icon的大小.
            posted on 2009-05-24 17:13 逛奔的蝸牛 閱讀(7648) 評論(3)  編輯 收藏 引用 所屬分類: Qt自定義Widget

            評論

            # re: QtWidget: 自定義不規則窗體與按鈕 2009-07-21 17:03 QT初學者
            button->setMask(maskBitmap/*maskedRegion*/);
            這句話能否講解一下?
            maskBitmap是什么類型,從何而來?setMask()函數的作用是什么?謝謝哈。  回復  更多評論
              

            # re: QtWidget: 自定義不規則窗體與按鈕 2010-04-15 19:59 喃喃
            是這樣的,不錯  回復  更多評論
              

            # re: QtWidget: 自定義不規則窗體與按鈕 2011-08-09 13:08 QT菜鳥
            寫的好粗略。。除了得知應該用到QRegion之外其他都有點不知所云。。  回復  更多評論
              

            看全色黄大色大片免费久久久 | 亚洲国产高清精品线久久| 亚洲国产精品婷婷久久| 久久久91精品国产一区二区三区 | 99久久精品免费看国产一区二区三区 | 久久伊人影视| 久久久无码一区二区三区| 国产精品久久久久久久久| 国产精品久久久久久福利漫画| 久久久久亚洲精品男人的天堂| 亚洲精品乱码久久久久久自慰| 日本精品久久久久中文字幕8 | 久久久一本精品99久久精品66| 久久99精品久久久久久9蜜桃| 久久人人爽人人爽人人片AV高清| www.久久热.com| 久久久久亚洲AV无码网站| 久久久久久国产精品无码下载| 欧美丰满熟妇BBB久久久| 色综合久久久久综合99| 香蕉久久一区二区不卡无毒影院| 亚洲av日韩精品久久久久久a| 久久AV高潮AV无码AV| 久久91精品综合国产首页| 久久精品无码专区免费东京热| 日韩中文久久| 婷婷国产天堂久久综合五月| 久久这里只有精品视频99| 国产精品伊人久久伊人电影| 久久免费的精品国产V∧| 亚洲国产精品无码久久SM| 久久精品青青草原伊人| 色偷偷偷久久伊人大杳蕉| 久久久久久精品免费看SSS| 久久久国产视频| 久久久久久伊人高潮影院| 精品国产乱码久久久久久呢 | 久久精品一本到99热免费| 国产99久久久国产精品小说| 亚洲国产成人精品女人久久久| 天堂无码久久综合东京热|