• <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>
            posts - 319, comments - 22, trackbacks - 0, articles - 11
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            posted @ 2011-06-03 07:25 RTY 閱讀(991) | 評(píng)論 (0)編輯 收藏

            posted @ 2011-06-03 06:37 RTY 閱讀(418) | 評(píng)論 (0)編輯 收藏

            文本編輯器Emurasoft EmEditor Professional V10.0.6 +注冊(cè)碼

            Emurasoft EmEditor Professional多國(guó)語(yǔ)言含簡(jiǎn)體中文版。EmEditor是快速,輕巧,可擴(kuò)展,使用方便的windows文本編輯器。EmEditor獲得了眾多獎(jiǎng)勵(lì),包括 共享軟件企業(yè)殊榮 ,該榮譽(yù)在應(yīng)用程序領(lǐng)域! ZDnet.com的 Ed Burnette 稱(chēng) EmEditor 為 “全球最快的編輯器。” 

            該文本編輯器支持功能強(qiáng)大的宏,統(tǒng)一碼,超大文件。Emurasoft的隨時(shí)服務(wù)滿(mǎn)足了客戶(hù)的需要,并隨時(shí)傾聽(tīng)客戶(hù)的建議。我們提供及時(shí)的客戶(hù)服務(wù), 并為有一些知名客戶(hù)而驕傲,這些知名客戶(hù)包括:大型企業(yè),教育機(jī)構(gòu),歐盟組織,日本及其他各國(guó)的政府部門(mén)。
            EmEditor Professional 特征
            文件對(duì)比, 拼寫(xiě)驗(yàn)證, 更多特征盡在版本10中
            這個(gè)版本中的眾多新特征包括: 新的對(duì)比和同步滾動(dòng)功能, 新的拼寫(xiě)特征, 改進(jìn)后的垂直選區(qū)編輯功能, 大綱插件新特征, 以及更多! 詳見(jiàn) EmEditor 專(zhuān)業(yè)版 10 新特征.
            新特征列表
            對(duì)比和同步滾動(dòng) • 新的拼寫(xiě)功能 • 改進(jìn)后的垂直選區(qū)編輯 • 計(jì)數(shù) • 大綱插件新特征 • ASCII并排查看和二進(jìn)制(十六位制查看) • 新的代碼片段插件 • 自動(dòng)添加括弧 • 收縮 • CSV, TSV • 全屏 • 剪貼板歷史 • 支持通配符 • 包括取消信息的工作區(qū) • 新的外部工具 • 列表引腳 • 保存在受保護(hù)的文件夾中 • 支持 Windows 7 跳轉(zhuǎn)列表 • 超大文件編輯器 • 垂直選區(qū)編輯 • 二位制編輯 • 最優(yōu)化搜索和重啟 • 改進(jìn)后的項(xiàng)目插件 • 最優(yōu)化開(kāi)啟的超大文件 • 搜索欄, HTML欄, 項(xiàng)目插件 • Word Complete • 鍵盤(pán)和鼠標(biāo)記錄和返回 • 針對(duì)宏的新對(duì)象, 屬性, 和方法 • Macros工具欄 • 移動(dòng)選項(xiàng) (可安裝在U盤(pán)) • 瀏覽器, 差分計(jì)數(shù)器, 大綱, 網(wǎng)頁(yè)預(yù)覽, 搜索插件 • 聯(lián)合EmEditor的外部工具標(biāo)準(zhǔn)輸出顯示 • 快速啟動(dòng) • 支持活動(dòng)腳本 • 輕巧, 單一程序, 多線(xiàn)程, 低耗內(nèi)存 • 制表視窗 • 檢查所有結(jié)果的對(duì)話(huà)框 • 支持更多統(tǒng)一碼 • 應(yīng)用程序出錯(cuò)處理 • 強(qiáng)大而多功能的宏 • 文件中查找 • 文件中重啟 • 高亮顯示關(guān)鍵字 • 支持統(tǒng)一碼 • 插件 • 拖拽 • 優(yōu)質(zhì) • 針對(duì)網(wǎng)頁(yè)設(shè)計(jì)者 • 以及更多! 
            Snap_2011.04.17_19h37m18s_001.png
            Emurasoft EmEditor Professional官方網(wǎng)站:
            http://www.emeditor.com
            Emurasoft EmEditor Professional V10.0.6官方下載地址:
            http://www.emeditor.com/pub/emed32_10.0.6_trial.exe
            Emurasoft EmEditor Professional V10.0.6官方注冊(cè)碼:

            名字:www.yyyww.com
            注冊(cè)碼:ATEAM-CRUDE-FJJ29-C65AG-NC8ZB

            posted @ 2011-06-02 07:09 RTY 閱讀(1036) | 評(píng)論 (0)編輯 收藏

            在這里我們提及一些Qt程序的調(diào)試的使用.
            一、命令行選項(xiàng)
            當(dāng)你運(yùn)行Qt程序的的時(shí)候你可以指定幾個(gè)命令行選項(xiàng)來(lái)幫助程序的調(diào)試.
            -nograb 應(yīng)用程序不會(huì)搶奪鼠標(biāo)和鍵盤(pán). 當(dāng)程序運(yùn)行在Linux下的gdb調(diào)試工具下的時(shí)候,這個(gè)值是默認(rèn)設(shè)置的.
            -dograb 忽略任何暗示的或明示的-nograb. 即使-nograb放在命令行的最后時(shí),-dograb也勝于-nograb的調(diào)用,即-dograb的優(yōu)先級(jí)更高.
            -sync 應(yīng)用程序在X的同步模式下運(yùn)行. 同步模式強(qiáng)制X服務(wù)器立即執(zhí)行每個(gè)X客戶(hù)端的請(qǐng)求并且不使用緩沖區(qū)(buffer)的優(yōu)化. 它使程序更便于調(diào)試,但是速度更慢.-sync選項(xiàng)僅在Qt的X11版本上有效.
            二、警告和調(diào)試信息
            Qt的擁有本個(gè)全局函數(shù)來(lái)輸出警告及調(diào)試文本.
            qDebug() 用于測(cè)試等的調(diào)試信息的輸出.
            qWarning() 用于當(dāng)程序出現(xiàn)錯(cuò)誤的時(shí)候的警告信息的輸出.
            qFatal() 用于毀滅性的錯(cuò)誤信息的輸出及程序的退出.
            Qt 通過(guò)這些函數(shù)的執(zhí)行將信息傳給Unix/X11下的stderr output或傳給Windows下的調(diào)試器. 你可以通過(guò)qInstallMsgHandler()安裝信息句柄(message handler)來(lái)接管這些函數(shù).
            當(dāng)一個(gè)應(yīng)用程序很奇怪地運(yùn)行時(shí),調(diào)試函數(shù)QObject::dumpObjectTree() 和QObject::dumpObjectInfo() 是很有用的. 用對(duì)象名比不用對(duì)象名更有幫助,雖然有的時(shí)候不用名稱(chēng)都是那么有幫助.
            三、調(diào)試宏
            頭文件qglobal.h包含了許多的調(diào)試宏及其定義.
            兩個(gè)重要的宏:
            ASSERT(b) 其中b 是一個(gè)布爾表達(dá)式, 如果b的FALSE,將會(huì)輸出警告信息: "ASSERT: 'b' in file file.cpp (234)" ---->表示在文件file.cpp的第234行中b的值為FALSE. 
            CHECK_PTR(p) 其中p 是一個(gè)指針. 當(dāng)p為空的時(shí)候?qū)?huì)輸出警告信息: "In file file.cpp, line 234: Out of memory" ---->表示在文件file.cpp的第234行,內(nèi)存溢出. 
            這些宏在檢測(cè)程序錯(cuò)誤時(shí)是非常有用的, 比如說(shuō):
              char *alloc( int size )
              {
                  ASSERT( size > 0 );
                  char *p = new char[size];
                  CHECK_PTR( p );
                  return p;
              }
            如果你定義了標(biāo)志QT_FATAL_ASSERT, ASSERT將會(huì)調(diào)用fatal()取代warning(), 所以一個(gè)失敗的斷言將會(huì)導(dǎo)致程序在輸出錯(cuò)誤信息后退出.
            注意:如果CHECK_STATE(下面會(huì)講到)沒(méi)有定義的話(huà),那么ASSERT宏是一個(gè)空的表達(dá)式. 在它里頭的代碼將不會(huì)被執(zhí)行. 同樣的,如果CHECK_NULL沒(méi)有定變色鏡的話(huà),CHECK_PTR也是一個(gè)空的表達(dá)式. 這里是一個(gè)怎樣讓ASSERT 或CHECK_PTR成為NOT的例子:
              char *alloc( int size )
              {
                  char *p;
                  CHECK_PTR( p = new char[size] );  // never do this!
                  return p;
              }
            這個(gè)程序的繁雜的:只有在正確檢測(cè)試標(biāo)志被定義的時(shí)候, p 才會(huì)被設(shè)為一個(gè)穩(wěn)當(dāng)?shù)闹? 如果這個(gè)代碼沒(méi)有定義CHECK_NULL標(biāo)志, 那么在CHECK_PTR表達(dá)式里的代碼將不會(huì)執(zhí)行(一般地,它只是幫助調(diào)試) 并返回一個(gè)野指指.
            Qt庫(kù)包含了幾百條內(nèi)在的檢測(cè),當(dāng)有一些錯(cuò)誤被檢測(cè)出來(lái)之后,將會(huì)輸出警告信息.
            基于下列不同調(diào)試標(biāo)志的狀態(tài),可以進(jìn)行對(duì)Qt內(nèi)部的完整性和結(jié)果的正確性的測(cè)試:
            CHECK_STATE: 檢查對(duì)象的狀態(tài)的一致性.Check for consistent/expected object state 
            CHECK_RANGE: 檢查變量的范圍錯(cuò)誤. 
            CHECK_NULL: 檢查危險(xiǎn)的空指針.
            CHECK_MATH: 檢查危險(xiǎn)的數(shù)學(xué)運(yùn)算, 比如說(shuō)除以0的運(yùn)算. 
            NO_CHECK: 關(guān)閉所有的CHECK_... 標(biāo)志 .
            DEBUG: 允許使用調(diào)試代碼.
            NO_DEBUG: 關(guān)閉 DEBUG 標(biāo)志. 
            默認(rèn)情況下, DEBUG和所有的CHECK 標(biāo)志都是打開(kāi)的. 要關(guān)閉 DEBUG, 定義NO_DEBUG. 要關(guān)閉CHECK標(biāo)志,定義 NO_CHECK.
            例:
              void f( char *p, int i )
              {
              #if defined(CHECK_NULL)
                  if ( p == 0 )
                      qWarning( "f: Null pointer not allowed" );
              #endif
              #if defined(CHECK_RANGE)
                  if ( i < 0 )
                      qWarning( "f: The index cannot be negative" );
              #endif
              }
            四、一般的bugs
            這里我們值得提及的一個(gè)公共的BUG: 如果你包含了一個(gè)Q_OBJECT宏在類(lèi)的聲明和運(yùn)行moc的時(shí)候, 并且又忘了鏈接到moc生成對(duì)象代碼到你的可執(zhí)行程序上,那么你將會(huì)得到一些非常模糊的錯(cuò)誤信息. 
            任何鏈接錯(cuò)誤信息都是關(guān)于vtbl, _vtbl, __vtbl 或類(lèi)似于這樣一類(lèi)問(wèn)題缺乏的提示信息. 

            posted @ 2011-06-01 21:46 RTY 閱讀(540) | 評(píng)論 (0)編輯 收藏

            先要說(shuō)的是QString。
                  之所以把QString單獨(dú)拿出來(lái),是因?yàn)閟tring是很常用的一個(gè)數(shù)據(jù)結(jié)構(gòu),甚至在很多語(yǔ)言中,比如JavaScript,都是把string作為一種同int等一樣的基本數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)的。
                  每一個(gè)GUI程序都需要string,這些string可以用在界面上的提示語(yǔ),也可以用作一般的數(shù)據(jù)結(jié)構(gòu)。C++語(yǔ)言提供了兩種字符串的實(shí)現(xiàn):C風(fēng)格的 字符串,以'\0‘結(jié)尾;std::string,即標(biāo)準(zhǔn)模版庫(kù)中的類(lèi)。Qt則提供了自己的字符串實(shí)現(xiàn):QString。QString以16位 Uniode進(jìn)行編碼。我們平常用的ASCII等一些編碼集都作為Unicode編碼的子集提供。關(guān)于編碼的問(wèn)題,我們會(huì)到以后的時(shí)候再詳細(xì)說(shuō)明。
            在使用QString的時(shí)候,我們不需要擔(dān)心內(nèi)存分配以及關(guān)于'\0'結(jié)尾的這些注意事項(xiàng)。QString會(huì)把這些問(wèn)題解決。通常,你可以把 QString看作是一個(gè)QChar的向量。另外,與C風(fēng)格的字符串不同,QString中間是可以包含'\0'符號(hào)的,而length()函數(shù)則會(huì)返回 整個(gè)字符串的長(zhǎng)度,而不僅僅是從開(kāi)始到'\0'的長(zhǎng)度。
                 同Java的String類(lèi)類(lèi)似,QString也重載的+和+=運(yùn)算符。這兩個(gè)運(yùn)算符可以把兩個(gè)字符串連接到一起,正像Java里面的操作一樣。QString可以自動(dòng)的對(duì)占用內(nèi)存空間進(jìn)行擴(kuò)充,這種連接操作是恨迅速的。下面是這兩個(gè)操作符的使用:
            QString str = "User: "  ;  
            str += userName + "\n"  ; 
            QString的append()函數(shù)則提供了類(lèi)似的操作,例如:
            str = "User: "  ;  
            str.append(userName);  
            str.append("\n"  ); 
            C語(yǔ)言中有printf()函數(shù)作為格式化輸出,QString則提供了一個(gè)sprintf()函數(shù)實(shí)現(xiàn)了相同的功能:
            str.sprintf("%s %.1f%%"  , "perfect competition"  , 100.0); 
            這句代碼將輸出:perfect competition 100.0%,同C語(yǔ)言的printf()一樣。不過(guò)前面我們也見(jiàn)到了Qt提供的另一種格式化字符串輸出的函數(shù)arg():
            str = QString("%1 %2 (%3s-%4s)"  )  
                  .arg("permissive"  ).arg("society"  ).arg(1950).arg(1970); 
            這段代碼中,%1, %2, %3, %4作為占位符,將被后面的arg()函數(shù)中的內(nèi)容依次替換,比如%1將被替換成permissive,%2將被替換成society,%3將被替換成 1950,%4將被替換曾1970,最后,這句代碼輸出為:permissive society (1950s-1970s). arg()函數(shù)比起sprintf()來(lái)是類(lèi)型安全的,同時(shí)它也接受多種的數(shù)據(jù)類(lèi)型作為參數(shù),因此建議使用arg()函數(shù)而不是傳統(tǒng)的 sprintf()。
            使用static的函數(shù)number()可以把數(shù)字轉(zhuǎn)換成字符串。例如:
            QString str = QString::number(54.3); 
            你也可以使用非static函數(shù)setNum()來(lái)實(shí)現(xiàn)相同的目的:
            QString str;  
            str.setNum(54.3); 
            而一系列的to函數(shù)則可以將字符串轉(zhuǎn)換成其他基本類(lèi)型,例如toInt(), toDouble(), toLong()等。這些函數(shù)都接受一個(gè)bool指針作為參數(shù),函數(shù)結(jié)束之后將根據(jù)是否轉(zhuǎn)換成功設(shè)置為true或者false:
            bool    ok;  
            double    d = str.toDouble(&ok);  
            if   (ok)  
            {  
                // do something...   
            } else    {  
                // do something...   
            對(duì)于QString,Qt提供了很多操作函數(shù),例如,使用mid()函數(shù)截取子串:
            QString x   = "Nine pineapples"  ;  
            QString y   = x  .mid(5, 4);            // y   == "pine"  
            QString z   = x  .mid(5);               // z   == "pineapples" 
            mid()函數(shù)接受兩個(gè)參數(shù),第一個(gè)是起始位置,第二個(gè)是取串的長(zhǎng)度。如果省略第二個(gè)參數(shù),則會(huì)從起始位置截取到末尾。正如上面的例子顯示的那樣。
            函數(shù)left()和rigt()類(lèi)似,都接受一個(gè)int類(lèi)型的參數(shù)n,都是對(duì)字符串進(jìn)行截取。不同之處在于,left()函數(shù)從左側(cè)截取n個(gè)字符,而right()從右側(cè)開(kāi)始截取。下面是left()的例子:
            QString x = "Pineapple"  ;  
            QString y = x.left(4);      // y == "Pine"   
            函數(shù)indexOf()返回字符串的位置,如:
            QString x = "sticky question"  ;  
            QString y = "sti"  ;  
            x.indexOf(y);               // returns 0   
            x.indexOf(y, 1);            // returns 10   
            x.indexOf(y, 10);           // returns 10   
            x.indexOf(y, 11);           // returns -1   
            函數(shù)startsWith()和endsWith()可以檢測(cè)字符串是不是以某個(gè)特定的串開(kāi)始或結(jié)尾,例如:
            if    (url.startsWith("http:"  ) && url.endsWith(".png"  ))  
            {  
            這段代碼等價(jià)于
            if    (url.left(5) == "http:"   && url.right(4) == ".png"  )  
            {  
            不過(guò),前者要比后者更加清楚簡(jiǎn)潔,并且性能也更快一些。
            QString還提供了replace()函數(shù)供實(shí)現(xiàn)字符串的替換功能;trimmed()函數(shù)去除字符串兩側(cè)的空白字符(注意,空白字符包括空 格、Tab以及換行符,而不僅僅是空格);toLower()和toUpper()函數(shù)會(huì)將字符串轉(zhuǎn)換成小寫(xiě)大寫(xiě)字符串;remove()和 insert()函數(shù)提供了刪除和插入字符串的能力;simplified()函數(shù)可以將串中的所有連續(xù)的空白字符替換成一個(gè),并且把兩端的空白字符去 除,例如"   \t   ”會(huì)返回一個(gè)空格" "。
            將const char *類(lèi)型的C風(fēng)格字符串轉(zhuǎn)換成QString也是很常見(jiàn)的需求,簡(jiǎn)單來(lái)說(shuō),QString的+=即可完成這個(gè)功能:
            str += " (1870)"  ; 
            這里,我們將const char * 類(lèi)型的字符串" (1870)"轉(zhuǎn)換成為QString類(lèi)型。如果需要顯式的轉(zhuǎn)換,可以使用QString的強(qiáng)制轉(zhuǎn)換操作,或者是使用函數(shù)fromAscii()等。為了 將QString類(lèi)型轉(zhuǎn)成const char *字符串,需要進(jìn)行兩步操作,一是使用toAscii()獲得一個(gè)QByteArray類(lèi)型對(duì)象,然后調(diào)用它的data()或者constData()函 數(shù),例如:
            printf("User: %s\n"  , str.toAscii().data()); 
            為了方便使用,Qt提供了一個(gè)宏qPrintable(),這個(gè)宏等價(jià)于toAscii().constData(),例如:
            printf("User: %s\n"  , qPrintable(str)); 
            我們調(diào)用QByteArray類(lèi)上面的data()或者constData()函數(shù),將獲得QByteArray內(nèi)部的一個(gè)const char*類(lèi)型的字符串,因此,我們不需要擔(dān)心內(nèi)存泄漏等的問(wèn)題,Qt會(huì)替我們管理好內(nèi)存。不過(guò)這也暗示我們,注意不要使用這個(gè)指針太長(zhǎng)時(shí)間,因?yàn)槿绻?QByteArray被delete,那么這個(gè)指針也就成為野指針了。如果這個(gè)QByteArray對(duì)象沒(méi)有被放在一個(gè)變量中,那么當(dāng)語(yǔ)句結(jié)束 后,QbyteArray對(duì)象就會(huì)被delete,這個(gè)指針也就被delete 了。
            接下來(lái)說(shuō)說(shuō)QString和QByteArray之間的轉(zhuǎn)換  ,這里說(shuō)兩種,都是從網(wǎng)上搜到的。
            第一種,數(shù)據(jù)流的方式,這里只說(shuō)從QByteArray轉(zhuǎn)向QString。
            QByteArray encodedString = "xxx";
            QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
            QString string = codec->toUnicode(encodedString);
            [另外]
            char ch_str[10] = "搜索";
            QString str = QString::fromLocal8Bit(ch_str);
            第二種,常用的,網(wǎng)上看到的。
            //常用參數(shù)類(lèi)型:char *字符串, QByteArray字符數(shù)組, QString字符串
            //需要轉(zhuǎn)換:char * ---轉(zhuǎn)---  QByteArray  ---需要調(diào)用QByteArray類(lèi)的構(gòu)造函數(shù)
            char*     --------------QByteArray(const char*)-----------> QByteArray
            char* str;
            QByteArray byte(str);
            char*     --------------QString(const char*)-------------->QString
            char* str;
            QString string(str);
            QByteArray   -------------data()-------------------->char*
            QByteArray byte;
            char* str = byte.data();
            QByteArray  ------------QString()------------------->QString
            QByteArray byte;
            QString string(byte);
            QString  --------------toAscii()--------------------> QByteArray
            QString string;
            QByteArray byte = string.toAscii();
            QString -------------qPrintable()------------------>char*
            QString string;
            char* str = qPrintable(string);
            或QString --------toLatin1()------QByteArray----------data()--------->char*
            QString string;
            QByteArray ba=string.toLatin1();
            const char* str = ba.data();

            posted @ 2011-06-01 21:42 RTY 閱讀(1327) | 評(píng)論 (0)編輯 收藏

            一. 背景刷成黑色,前景色設(shè)為白色。 
                  方法一、paltette方式,經(jīng)測(cè)試,該方法不會(huì)影響到其他控件,推薦使用 QPalette bgpal = palette();
                                bgpal.setColor (QPalette::Background, QColor (0, 0 , 0, 255));
                                 //bgpal.setColor (QPalette::Background, Qt::transparent);
                                 bgpal.setColor (QPalette::Foreground, QColor (255,255,255,255)); setPalette                                      (bgpal);
                  方法二、stylesheet方式 影響子控件的方法是:
                                setStyleSheet ("background-color: #000000;color: #ffffff;");
                  不影響子控件的方法是:
                                setStyleSheet ("venus--TitleBar {background-color: #000000;color:                                                    #ffffff;}");
            二. 圓角控件 用stylesheet方式
                  setStyleSheet ("border:2px groove gray;border-radius:10px;padding:2px 4px;");
            三. 圓角窗口 
                  RoundRectWin::RoundRectWin() { QPalette p = palette(); QPixmap img("roundrect.png");
                  QBitmap mask("roundrect_mask.png");
                  p.setBrush(QPalette::Window, QBrush(img));
                  setPalette(p);
                  setMask(mask);
                  resize(img.size());
                  //setWindowFlags(Qt::FramelessWindowHint);//這句會(huì)去掉標(biāo)題欄 } 注意:mask的圖多余部分設(shè)為             白色
            四. 半透明窗口
                 1.窗口整體透明,但是窗體上的控件不透明。 通過(guò)設(shè)置窗體的背景色來(lái)實(shí)現(xiàn),將背景色設(shè)置為全透。                      QPalette pal = palette();
                     pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal); 試驗(yàn)效                  果:
                     窗體標(biāo)題欄不透明;
                     窗體客戶(hù)區(qū)上的控件不透明,QLabel控件只是字顯示,控件背景色透明; 窗體客戶(hù)區(qū)完全透明。
                     另外從網(wǎng)上看到的方法: setAttribute(Qt::WA_TranslucentBackground, true); 試驗(yàn)的結(jié)果是類(lèi)                似于上面的方法,但有時(shí)候窗體會(huì)被一些雜色斑點(diǎn)填充,未找到原因。
                 2.窗口及其上面的控件都半透明:
                    setWindowOpacity(0.7)
                     試驗(yàn)效果:窗口及控件都半透明。注意不能夠setWindowFlags(Qt::FramelessWindowHint);要不                 就不起作用
                3.窗口整體不透明,局部透明:
                    在Paint事件中使用Clear模式繪圖。
                    void TestWindow::paintEvent( QPaintEvent* )
                    { 
                           QPainter p(this);
                           p.setCompositionMode( QPainter::CompositionMode_Clear ); p.fillRect( 10, 10, 300,                          300, Qt::SolidPattern ); 
                      }
                    試驗(yàn)效果:繪制區(qū)域全透明。如果繪制區(qū)域有控件不會(huì)影響控件。
                     以上實(shí)驗(yàn)均是基于Directfb的Qte測(cè)試。在Linux下及Windows下效果會(huì)略有不同。 比如在Windows                下第3個(gè)實(shí)驗(yàn),繪制區(qū)域就是一個(gè)黑窟窿,如果Window本身半透,則是Window下面的內(nèi)容加上半透                  效果,不是全透明效果。
            五. 控制QPixmap的alpha
                  QPixmap temp(pixmapTop.size()); temp.fill(Qt::transparent);
                  QPainter p(&temp);
                  p.setCompositionMode(QPainter::CompositionMode_Source);
                  p.drawPixmap(0, 0, pixmapTop);
                  p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
                  p.fillRect(temp.rect(), QColor(0, 0, 0, alpha)); //--lable顯示前景圖片 ui->label-                                         >setScaledContents(true);
                  ui->label->setPixmap(temp);
            六. layout 的邊界 layout->setMargin (0);
            七.QPushButton的三種狀態(tài)
             
            QString strStyle = "QPushButton {border-image: normal.png;} QPushButton: hover{border-image: hover.png;} QPushButton: checked {border-image: check.png;}";
            button->setStyleSheet(strStyle);

            posted @ 2011-06-01 21:36 RTY 閱讀(1053) | 評(píng)論 (0)編輯 收藏

            Python中的easy_install

            Python中的easy_install工具很爽,它的作用類(lèi)似于Php中的pear,或者Ruby中的gem,或者Perl中的cpan。

            如果想使用easy_install工具,可能需要先安裝setuptools,不過(guò)更酷的方法是使用ez_setup.py腳本:

            wget -q http://peak.telecommunity.com/dist/ez_setup.py
            python ez_setup.py

            安裝完后,最好確保easy_install所在目錄已經(jīng)被加到PATH環(huán)境變量里:

            Windows: C:\Python25\Scripts
            Linux: /usr/local/bin

            比如說(shuō)要安裝Python的MySQL支持,可以執(zhí)行如下命令,系統(tǒng)會(huì)自動(dòng)在pypi網(wǎng)站列表里查找相關(guān)軟件包:

            easy_install MySQL-python

            如果你在Windows+python2.5上執(zhí)行如上命令的話(huà),可能會(huì)出現(xiàn)如下錯(cuò)誤:

            Processing MySQL-python-1.2.3c1.tar.gz
            Running MySQL-python-1.2.3c1\setup.py -q bdist_egg –dist-dir c:\docume~1\…
            \locals~1\temp\easy_install-fvvfve\MySQL-python-1.2.3c1\egg-dist-tmp-q9moxf
            error: The system cannot find the file specified

            出現(xiàn)這類(lèi)錯(cuò)誤的原因是選錯(cuò)了版本,針對(duì)這個(gè)案列,我們可以顯式指定軟件包的版本號(hào):

            easy_install “MySQL-python==1.2.2″

            通過(guò)easy_install安裝軟件,相關(guān)安裝信息會(huì)保存到easy-install.pth文件里,路徑類(lèi)似如下形式:

            Windows:C:\Python25\Lib\site-packages\easy-install.pth
            Linux:/usr/local/lib/python25/site-packages/easy-install.pth

            如果想刪除通過(guò)easy_install安裝的軟件包,比如說(shuō):MySQL-python,可以執(zhí)行命令:

            easy_install -m MySQL-python

            此操作會(huì)從easy-install.pth文件里把MySQL-python的相關(guān)信息抹去,剩下的egg文件,你可以手動(dòng)刪除。

            參考:http://www.ibm.com/developerworks/cn/linux/l-cppeak3.html

            posted @ 2011-06-01 06:51 RTY 閱讀(380) | 評(píng)論 (0)編輯 收藏

            該版本修復(fù)了 SQLiteConnection 在語(yǔ)法上的不兼容導(dǎo)致 Python 2.4 無(wú)法使用 SQLObject 的問(wèn)題。

            SQLObject 是一個(gè)流行的Python 數(shù)據(jù)庫(kù)對(duì)象映射框架,映射的規(guī)則就是表->類(lèi)、字段->屬性

            示例代碼:

            >>> from sqlobject import *
            >>>
            >>> sqlhub.processConnection = connectionForURI('sqlite:/:memory:')
            >>>
            >>> class Person(SQLObject):
            ... fname = StringCol()
            ... mi = StringCol(length=1, default=None)
            ... lname = StringCol()
            ...
            >>> Person.createTable()

            posted @ 2011-05-31 07:12 RTY 閱讀(221) | 評(píng)論 (0)編輯 收藏

                 摘要: 請(qǐng)點(diǎn)擊表格中屬性列的鏈接,可以查看相關(guān)屬性的詳細(xì)信息。CSS 屬性組:背景文本字體邊框和輪廓外邊距內(nèi)邊距列表內(nèi)容生成尺寸定位打印表格偽類(lèi)偽元素提示和注釋?zhuān)簩傩裕?#8220;屬性” 列指向語(yǔ)法、實(shí)例、瀏覽器支持等內(nèi)容。CSS:"CSS" 列指示屬性是在哪個(gè) CSS 版本中定義的(CSS1 還是 CSS2)。提示:W3School 的 CSS 參考手冊(cè)定期在所有主流瀏覽器中進(jìn)行測(cè)試。最后...  閱讀全文

            posted @ 2011-05-28 21:26 RTY 閱讀(238) | 評(píng)論 (0)編輯 收藏

            打印屬性

            打印 HTML 文檔總是會(huì)出現(xiàn)問(wèn)題。在 CSS2 中,我們可以借助打印屬性讓打印 web 內(nèi)容更容易一些。

            屬性描述
            orphans設(shè)置元素放在頁(yè)面底部時(shí)所允許的最少文本行數(shù)。number
            marks

            設(shè)置是否在內(nèi)容區(qū)之外但是在畫(huà)布的可打印區(qū)域內(nèi)放“十字標(biāo)志”。

            請(qǐng)注意,CSS2.1 已刪除該屬性。

            • none
            • crop
            • cross
            page

            這個(gè)屬性與 size 屬性結(jié)合可以指定打印一個(gè)元素時(shí)所用的特定頁(yè)面類(lèi)型。

            請(qǐng)注意,CSS2.1 已刪除該屬性。

            auto identifier
            page-break-after設(shè)置元素后是否應(yīng)當(dāng)放置分頁(yè)符。
            • auto
            • always
            • avoid
            • left
            • right
            page-break-before設(shè)置元素前否應(yīng)當(dāng)放置分頁(yè)符。
            • auto
            • always
            • avoid
            • left
            • right
            page-break-inside設(shè)置元素內(nèi)部是否應(yīng)當(dāng)放置分頁(yè)符。
            • auto
            • avoid
            size

            利用這個(gè)屬性,創(chuàng)作人員可以聲明打印一個(gè)元素時(shí)所用頁(yè)框的大小和方向。它可以與 page 結(jié)合使用。不過(guò)并不要求一定如此。

            請(qǐng)注意,CSS2.1 已刪除該屬性。

            • auto
            • portrait
            • landscape
            widows設(shè)置元素放在頁(yè)面頂部時(shí)所允許的最少文本行數(shù)。number

            posted @ 2011-05-28 21:25 RTY 閱讀(161) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共31頁(yè): First 15 16 17 18 19 20 21 22 23 Last 
            久久精品国产精品亚洲精品| 久久久WWW免费人成精品| 久久久久亚洲AV片无码下载蜜桃| 久久久久人妻一区精品色| 精品无码久久久久久午夜| 国产精品VIDEOSSEX久久发布| 久久久精品视频免费观看| 无码久久精品国产亚洲Av影片 | 久久午夜福利无码1000合集| 精品久久久噜噜噜久久久| 色播久久人人爽人人爽人人片aV | 久久亚洲AV成人无码国产| 国产综合成人久久大片91| 久久亚洲精品人成综合网| 亚洲国产精品成人AV无码久久综合影院| 久久久噜噜噜www成人网| 久久久WWW免费人成精品| 青草影院天堂男人久久| 亚洲中文久久精品无码ww16| 久久高清一级毛片| 国产精品午夜久久| 久久99中文字幕久久| 精品蜜臀久久久久99网站| 久久久久久精品久久久久| 久久国产三级无码一区二区| 热久久国产精品| 91精品国产高清久久久久久io| 久久久久人妻一区二区三区| 四虎亚洲国产成人久久精品| 青青青青久久精品国产h久久精品五福影院1421| 久久久老熟女一区二区三区| 亚洲精品无码久久久久去q | 久久亚洲国产精品一区二区| 人妻精品久久久久中文字幕69| 久久久久久久女国产乱让韩| 99久久香蕉国产线看观香| 亚洲欧洲精品成人久久曰影片| 人妻无码精品久久亚瑟影视| 婷婷久久综合九色综合九七| 久久笫一福利免费导航| 久久婷婷五月综合成人D啪|