青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::

Skin(表皮) 是制作比較酷的軟件界面的有利工具. 一個軟件可以同時使用多種Skin 以取得不同的外觀, 使同一個軟件有截然不同的風格. 用戶可以根據自己的喜好選擇 不同的風格. 本節介紹使用 Qt 制作 Skin 的方法.

軟件界面的風格變化可以通過兩種機制完成,一種是通過設置主題(Themes),它使用 界面庫本身所具有的對界面組件(Components)的控制能力切換顯示風格;另外一種是 通過提供不同系列的圖片來切換顯示界面,即這里所講的 Skin。

制作表皮有幾個重要的因素值得考慮:

1. 使用無邊界的窗口
在 XWindow 下,無邊界的窗口是指不受窗口管理器管理的邊界不規則的窗口。由于不受窗口管理器管理管理,所以軟件窗口界面沒有附加的標題條(Title Bar)等。 在Qt中,建立無邊界窗口的最簡單的方法 是設置 QWidget 的 WFlags 的值是 WStyle_NoBorder。它定義在 qnamespace.h 中。不規則窗口的特點則要求對整個 窗口使用圖像掩碼。使用 X 窗口形狀的擴展(X Shape Extension)來達到要求。在 Qt 中可以直接使用,


QBitmap bm;
bm = *(Pixmaps[MASK]);
setMask(bm);
setBackgroundPixmap(*Pixmaps[BACKGROUND]);


2. 窗口的移動
由于上述窗口不受窗口管理器的管理的特性,所以移動窗口需要特殊處理,一般的 方法是截取根Widget的鼠標按鈕事件,自己處理鼠標點擊和移動的事件。


void SkinDemo::mouseMoveEvent(QMouseEvent *e)
{
QPoint newpos = e->globalPos();
QPoint upleft = pos0 + newpos - last;
move(upleft);
}

void SkinDemo::mousePressEvent(QMouseEvent *e)
{
last = e->globalPos();
pos0 = e->globalPos() - e->pos();
}


這里我們取得的鼠標位置是絕對位置,即相對于根窗口的位置,同時也記錄下窗口 左上角的位置,當鼠標移動時,取得新的絕對位置,則窗口左上角 的新位置應該 是原來位置與鼠標移動的位置之差。

3. 按鈕的制作
在 例子( qt-skin-example.tar.gz) 中,我們重新定義了鼠標按下和鼠標移動的事件處理 函數,并且含有按鈕的所有信息,主工作區的所有信息等。主工作區的信息是它的位置和尺寸,主窗口的信息是它所使用的背景圖片和圖片的掩碼(用來制造不規則 窗口),所以整個主窗口的大小可以由圖片的尺寸來決定。幾個按鈕的信息包含它們的 位置,它們的大小由圖片的大小來決定。
對于表皮中的圖像按鈕, 設置它的父類是 QButton,這種按鈕由兩幅圖片構成,一幅圖片是正常狀態(Normal),一幅圖片是按鈕按下時的狀態(Activated)。有時也可以設置成四 種狀態,即增加禁止狀態(Disabled)和鼠標指針進入時的狀態 (Hovered)。Qt3 的手工代碼實現:

CODE:
#include <qapplication.h>
#include <qwidget.h>
#include <qpixmap.h>
#include <qbitmap.h>
#include <qpoint.h>

class myclass:public QWidget
{
    public:
        myclass();
    protected:
        void mouseMoveEvent(QMouseEvent *e);
        void mousePressEvent(QMouseEvent *e);
    private:
        QPixmap *pixmap;
        QBitmap *bitmap;
        QPoint last,pos0;
};

myclass::myclass()
{
    setGeometry(0,0,120,120);
    pixmap=new QPixmap("/doc/test/a/tmp.png");
    bitmap=new QBitmap("/doc/test/a/mask.png");
    setPaletteBackgroundPixmap(*pixmap);
    setMask(*bitmap);
}
void myclass::mouseMoveEvent(QMouseEvent *e)
{
    if(e->state()==LeftButton)
    {
    QPoint newpos = e->globalPos();
    QPoint upleft = pos0 + newpos - last;
    move(upleft);
    }
}

void myclass::mousePressEvent(QMouseEvent *e)
{
    last = e->globalPos();
    pos0 = e->globalPos() - e->pos();
}
         

int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    myclass w;
    a.setMainWidget(&w);
    w.show();
    return a.exec();
}

posted on 2009-05-20 13:58 逛奔的蝸牛 閱讀(892) 評論(0)  編輯 收藏 引用 所屬分類: Qt
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美福利视频在线观看| 一本久久综合亚洲鲁鲁五月天| 欧美日本在线看| 久久av二区| 欧美日韩精品福利| 亚洲国产一区在线| 久久先锋影音av| 亚洲欧美国产不卡| 欧美午夜精品理论片a级按摩| 亚洲国产女人aaa毛片在线| 久久成人精品无人区| 一区二区三区精品| 午夜视频一区| 亚洲九九爱视频| 欧美bbbxxxxx| 亚洲精选在线观看| 亚洲国内精品| 久久手机精品视频| 精品va天堂亚洲国产| 久久一区视频| 久久精品视频在线播放| 极品日韩久久| 美女脱光内衣内裤视频久久影院 | 理论片一区二区在线| 久久精品国产综合精品| 国产一区二区三区网站| 先锋a资源在线看亚洲| 午夜精品久久久久久99热| 欧美特黄一级大片| 午夜在线不卡| 先锋a资源在线看亚洲| 国内一区二区三区| 欧美成黄导航| 欧美激情影音先锋| 宅男66日本亚洲欧美视频| 亚洲视频高清| 国产精品人人做人人爽人人添| 欧美在线观看www| 久久精品国产亚洲精品| 伊人婷婷欧美激情| 亚洲国产精品一区二区尤物区 | 国产精品久久久久三级| 久久高清福利视频| 亚洲电影在线看| 亚洲日本激情| 国产精品国产a| 久久精品首页| 狂野欧美一区| 中文有码久久| 久久se精品一区精品二区| 亚洲人午夜精品免费| 亚洲一区二区三区在线| 亚洲二区视频在线| 亚洲视频专区在线| 亚洲电影免费在线观看| 亚洲深夜福利| 亚洲国产精品电影在线观看| 亚洲午夜电影网| 亚洲国产欧美一区二区三区久久| 亚洲午夜免费福利视频| 欧美精品一区二区三区蜜臀| 欧美一区二区视频在线观看| 免费久久99精品国产自| 亚洲欧美日韩精品在线| 欧美成人精品三级在线观看| 亚洲在线电影| 女女同性女同一区二区三区91| 亚洲欧美电影院| 欧美成人xxx| 久久久久久久性| 国产精品久久福利| 亚洲国产精品视频一区| 精品999日本| 一个人看的www久久| 最近看过的日韩成人| 亚洲综合日韩| 久久精品中文字幕一区二区三区| 一区二区国产在线观看| 欧美中文字幕精品| 香蕉成人伊视频在线观看| 欧美精品免费视频| 久久亚洲免费| 国产日韩一区欧美| 亚洲午夜国产成人av电影男同| 一本久道久久综合婷婷鲸鱼| 免费观看不卡av| 免费视频久久| 一区在线观看视频| 久久国产婷婷国产香蕉| 欧美一级成年大片在线观看| 欧美性生交xxxxx久久久| 亚洲免费观看视频| 99国内精品久久| 欧美国产精品中文字幕| 亚洲承认在线| 亚洲精品国产无天堂网2021| 免费在线欧美黄色| 亚洲国产一区二区三区青草影视 | 欧美视频专区一二在线观看| 亚洲精品一区二区在线观看| 亚洲日本成人| 欧美激情aaaa| 亚洲精品国产精品国自产观看| 亚洲精选在线| 欧美日韩小视频| 一区二区欧美在线观看| 午夜精品视频在线观看| 国产精品久久久| 最近中文字幕日韩精品| 亚洲嫩草精品久久| 欧美一区二区三区视频在线| 国产精品自拍在线| 欧美亚洲自偷自偷| 久久久国产一区二区三区| 亚洲成在人线av| 欧美精品一区三区在线观看| 一区二区三区三区在线| 欧美中文日韩| 在线观看成人网| 欧美肥婆在线| 夜夜嗨网站十八久久| 亚洲欧美一区二区激情| 国产亚洲成精品久久| 老色批av在线精品| 亚洲一区二区免费视频| 国产偷国产偷亚洲高清97cao| 一区二区不卡在线视频 午夜欧美不卡在 | 国产欧美在线观看一区| 久久久精品2019中文字幕神马| 欧美激情第10页| 亚洲图片欧美午夜| 国产欧美一区二区三区视频| 免费h精品视频在线播放| 欧美日韩免费一区| 久久av二区| 亚洲黄色成人网| 午夜精品免费| 亚洲国产天堂久久综合网| 欧美日韩精品免费| 久久xxxx| 一本一本久久| 免费欧美电影| 亚洲欧美日韩在线播放| 亚洲国产成人久久综合| 国产精品―色哟哟| 欧美aⅴ99久久黑人专区| 亚洲欧美在线免费观看| 亚洲国产婷婷| 久久久久久网址| 亚洲性线免费观看视频成熟| 在线国产日韩| 国产欧美大片| 欧美日韩免费一区二区三区| 久热爱精品视频线路一| 午夜在线精品偷拍| 日韩视频在线你懂得| 欧美大香线蕉线伊人久久国产精品| 亚洲综合首页| 91久久嫩草影院一区二区| 国产一区二区三区直播精品电影 | 久久人人97超碰精品888| 一区二区三区国产在线| 蜜桃av一区二区三区| 午夜亚洲性色视频| 一本色道88久久加勒比精品| 91久久久亚洲精品| 一区二区三区在线观看视频| 国产欧美日本一区二区三区| 欧美日韩国产首页| 一本色道88久久加勒比精品| 亚洲免费播放| 1204国产成人精品视频| 国产精品一区二区在线观看网站 | 亚洲国产精品一区制服丝袜| 久久久久九九视频| 性欧美1819性猛交| 亚洲久久在线| 亚洲久久一区| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美一区二区三区男人的天堂| 亚洲精品中文字幕在线观看| 久久精品视频免费播放| 亚洲午夜激情网站| 亚洲视频视频在线| 一区二区三区久久久| 一本色道久久精品| 亚洲欧洲综合另类在线| 亚洲精品黄色| 日韩视频永久免费| 99在线|亚洲一区二区| 中文国产成人精品| 亚洲欧美成人一区二区在线电影 | 日韩亚洲国产欧美| 99视频精品免费观看| 一本久久综合亚洲鲁鲁五月天| 亚洲韩国日本中文字幕| 午夜精品久久久久久久久 | 欧美日韩和欧美的一区二区| 欧美人成在线| 国产精品99免费看|