锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美日韩高清,亚洲欧洲在线观看,国产精品激情偷乱一区二区∴http://m.shnenglu.com/zhonghua/category/18897.htmlzh-cnWed, 11 Dec 2013 09:34:50 GMTWed, 11 Dec 2013 09:34:50 GMT60[杞琞涓縐嶄嬌鐢≦Thread綰跨▼鐨勬柊鏂規硶QObject::moveToThreadhttp://m.shnenglu.com/zhonghua/archive/2013/12/11/204717.html綾崇背綾崇背Wed, 11 Dec 2013 09:08:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/12/11/204717.htmlhttp://m.shnenglu.com/zhonghua/comments/204717.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/12/11/204717.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/204717.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/204717.html闃呰鍏ㄦ枃

綾崇背 2013-12-11 17:08 鍙戣〃璇勮
]]>
QTableView鍜孮TableWidget緲婚〉鍔熻兘瀹炵幇http://m.shnenglu.com/zhonghua/archive/2013/11/17/204288.html綾崇背綾崇背Sun, 17 Nov 2013 09:15:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/11/17/204288.htmlhttp://m.shnenglu.com/zhonghua/comments/204288.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/11/17/204288.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/204288.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/204288.html

 杞嚜錛?a style="text-decoration: none; color: #084487;">http://indure.chinaunix.com/space.php?uid=25520556&do=blog&id=2211406

       涓昏浣跨敤QTableView鍜孮TableWidget涓殑涓変釜鍑芥暟瀹炵幇

QTableView錛氾細verticalScrollBar()->setSliderPosition()錛?span style="word-wrap: normal; word-break: normal; line-height: 18px;">  //璁劇疆褰撳墠婊戝姩鏉$殑浣嶇疆

QTableView錛氾細verticalScrollBar()->maximum();             //婊戝姩鏉¤兘縐誨姩鐨勬渶澶т綅緗?/span>

QTableView錛氾細verticalScrollBar()->value();                   //鑾峰緱褰撳墠婊戝姩鏉$殑浣嶇疆

 

 

  1. static int nCurScroller=0; //緲婚〉鏃剁殑褰撴椂婊戝姩鏉′綅緗?br />
  2. static int pageValue = 10; // 涓欏墊樉紺烘潯鏁?br />

  3. void SplayHisForm::createHisForm()
  4. {
  5.                 …….
  6.     hisTableWidget = new QTableWidget;
  7.     hisTableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
  8.     hisTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
  9.             …….
  10. }

  11. /***涓嬩竴欏?span style="word-wrap: normal; word-break: normal; line-height: 21px; color: #0000cc;">***/
  12. void SplayHisForm::nextPageHis()
  13. {
  14.     int maxValue = hisTableWidget->verticalScrollBar()->maximum(); // 褰撳墠SCROLLER鏈澶ф樉紺哄?5
  15.     nCurScroller = hisTableWidget->verticalScrollBar()->value(); //鑾峰緱褰撳墠scroller鍊?br />

  16.     if(nCurScroller<maxValue)
  17.         hisTableWidget->verticalScrollBar()->setSliderPosition(pageValue+nCurScroller);
  18.     else
  19.         hisTableWidget->verticalScrollBar()->setSliderPosition(0);
  20. }

  21. /***涓婁竴欏?span style="word-wrap: normal; word-break: normal; line-height: 21px; color: #0000cc;">***/
  22. void SplayHisForm::prePageHis()
  23. {
  24.     int maxValue = hisTableWidget->verticalScrollBar()->maximum(); // 褰撳墠SCROLLER鏈澶ф樉紺哄?5
  25.     nCurScroller = hisTableWidget->verticalScrollBar()->value();

  26.     if(nCurScroller>0)
  27.         hisTableWidget->verticalScrollBar()->setSliderPosition(nCurScroller-pageValue);
  28.     else
  29.         hisTableWidget->verticalScrollBar()->setSliderPosition(maxValue);
  30. }

 QTableView鍜孮TableWidget緲婚〉鍔熻兘瀹炵幇



綾崇背 2013-11-17 17:15 鍙戣〃璇勮
]]>
宸偣蹇樹簡銆傝褰曚竴涓嬨傚叧浜嶲T鍥介檯鍖?/title><link>http://m.shnenglu.com/zhonghua/archive/2013/09/12/203192.html</link><dc:creator>綾崇背</dc:creator><author>綾崇背</author><pubDate>Thu, 12 Sep 2013 07:59:00 GMT</pubDate><guid>http://m.shnenglu.com/zhonghua/archive/2013/09/12/203192.html</guid><wfw:comment>http://m.shnenglu.com/zhonghua/comments/203192.html</wfw:comment><comments>http://m.shnenglu.com/zhonghua/archive/2013/09/12/203192.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhonghua/comments/commentRss/203192.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhonghua/services/trackbacks/203192.html</trackback:ping><description><![CDATA[vs鐢熸垚鐨勫伐紼?鐢?<div><span style="color: #333333; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; display: inline !important; float: none;">qmake -project 鐢熸垚pro<br />鍦╬ro閲屽鍔?/span><br />TRANSLATIONS += myapp.ts<span style="color: #333333; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; display: inline !important; float: none;"><br /><br /><div><pre id="recommend-content-406217660" mb-10"="" style="margin: 0px 0px 10px; padding: 0px; font-family: arial, 'courier new', courier, 瀹嬩綋, monospace; white-space: pre-wrap; word-wrap: break-word; color: #333333; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #f1fedd;">鐒跺悗鍛戒護琛岃緭鍏update ***.pro<br />鎵撳紑.ts鏂囦歡錛屼竴鏉′竴鏉$殑緲昏瘧灝辨槸浜?br />鏈鍚巐release ***.pro</pre></div><br /></span></div><img src ="http://m.shnenglu.com/zhonghua/aggbug/203192.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhonghua/" target="_blank">綾崇背</a> 2013-09-12 15:59 <a href="http://m.shnenglu.com/zhonghua/archive/2013/09/12/203192.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Qt Tooltip璇﹁В http://m.shnenglu.com/zhonghua/archive/2013/06/05/200817.html綾崇背綾崇背Wed, 05 Jun 2013 08:41:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200817.htmlhttp://m.shnenglu.com/zhonghua/comments/200817.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200817.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/200817.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/200817.htmlQt4涓殑tooltip涓巜in32涓殑tooltip鏈夊緢澶氫笉涓鏍風殑鍦版柟錛屼笅闈㈡潵鎬葷粨涓涓嬨?br />
涓鏄笉鑳界洿鍦ㄥ爢鎴栨爤涓敓鎴怮ToolTip瀵硅薄銆傚洜涓哄叾鏋勯犲嚱鏁頒負縐佹湁銆?br />浜屾槸浠巜idget鑾峰彇鐨則ooltip涓嶆槸tooltip瀵硅薄錛岃屾槸tooltip涓殑鏂囨湰銆?br />涓夋槸tooltip璺熸湰涓嶆槸涓涓獁idget銆傛墍浠ヤ笉鎶婂畠褰撲綔widget鐢ㄣ?br />鍥涙槸tooltip綾繪槸涓涓潤鎬佺被錛屾墍浠ヨ窡鏈笉蹇呯敓鎴恡ooltip瀵硅薄灝卞彲浠ヤ嬌鐢ㄣ?br />浜旀槸tooltip綾諱笉鑳借瀹氬埗錛屾墍浠ヤ笉鑳戒粠瀹冧駭鐢熷悇縐嶅艦鐘剁殑tooltip紿楀彛銆?br />
QtoolTip鏈変袱縐嶄嬌鐢ㄦ柟寮忥細
涓鏄潤鎬乼ooltip銆傛瘮濡備負涓涓獁idget璁劇疆涓涓笉鍙樼殑tooltip鏂囨湰錛屽綋榧犳爣縐諱笂鍘繪椂鏄劇ずtooltip銆傛鏃跺緢綆鍗曪紝鍙渶璋冪敤widget鐨剆etToolTip()璁劇疆鏂囨湰鍗沖彲銆?br />浜屾槸鍔ㄦ乼ooltip銆備篃灝辨槸涓涓獁idget涓婄殑tooltip鏄彉鍖栫殑銆傛鏃墮渶瑕侀噸鍐橯Widget::event()鍑芥暟錛屽湪閲岄潰鍒ゆ柇浜嬩歡綾誨瀷錛屽鏋滄槸QEvent::ToolTip錛屽垯鎺у埗鏄劇ず鐨勬枃鏈殑鍐呭錛屽嵆鍙疄鐜板姩鎬乼ooltip銆?br />

鐪嬪涓嬩唬鐮佺ず渚嬶細

  1. bool SortingBox::event(QEvent *event)  
  2.  {  
  3.      if (event->type() == QEvent::ToolTip) {  
  4.          QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);  
  5.          int index = itemAt(helpEvent->pos());  
  6.          if (index != -1) {  
  7.              QToolTip::showText(helpEvent->globalPos(), shapeItems[index].toolTip());  
  8.          } else {  
  9.              QToolTip::hideText();  
  10.              event->ignore();  
  11.          }  
  12.   
  13.          return true;  
  14.      }  
  15.      return QWidget::event(event);  
  16.  }  
鍙互鐪嬪埌錛屾槸璋冪敤 QtoolTip::showText()鍦ㄦ煇涓綅緗樉紺簍ooltip鏂囨湰銆?br />
閭d箞錛屽鏋滄兂闅忔椂鏄劇ずtooltip錛岃鎬庝箞鍋氬憿錛熷叾瀹炲崄鍒嗙畝鍗曪細鐩存帴璋冪敤QToolTip::showText()錛屾寚瀹氳鏄劇ず鐨勪綅緗氨琛屼簡銆傚洜涓簍ooltip綾葷殑鍑芥暟璺熸湰灝辯浉褰撲簬鍏ㄥ眬鍑芥暟鑰屽凡銆?br />
鍛靛懙錛屽叾瀹炲緢綆鍗曪紝浣嗕粠win32杞繃鏉ョ殑浜猴紝瑙夊緱鐪熷埆鎵?/div>

綾崇背 2013-06-05 16:41 鍙戣〃璇勮
]]>
QT4 thread鍜孮Object鍏崇郴璇﹁В http://m.shnenglu.com/zhonghua/archive/2013/06/05/200816.html綾崇背綾崇背Wed, 05 Jun 2013 08:40:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200816.htmlhttp://m.shnenglu.com/zhonghua/comments/200816.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200816.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/200816.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/200816.htmlQThread浠嶲Object媧劇敓銆傚畠鍙戝嚭淇″彿鏉ヨ〃鏄庣嚎紼嬪紑濮嬩簡鎴栫粨鏉熶簡銆傚茍涓斾篃鎻愪緵浜嗗嚑涓Ы銆?br />
鏇存湁瓚g殑鏄紝QObject鍙互鍦ㄥ涓▼涓悓鏃朵嬌鐢紝鍙互鍙戝嚭淇″彿緇欏彟澶栫嚎紼嬬殑妲斤紝浠ュ強鍚?#8220;媧誨湪”鍙﹀綰跨▼涓殑瀵硅薄閭瘎浜嬩歡銆備互涓婁箣鎵浠ヨ兘鍙戠敓錛屾槸鍥犱負姣忎釜鍒濈▼閮借鍏佽鎷ユ湁瀹冭嚜宸辯殑浜嬩歡寰幆銆?br />

QObject 閲嶅叆

QObject 鏄彲閲嶅叆鐨勩傚畠澶у鏁伴潪鐣岄潰媧劇敓綾伙紝姣斿QTimer,QTcpSocket,QFtp,鍜孮Process錛屼篃閮芥槸鍙噸鍏ョ殑錛屼嬌寰楀湪澶氫釜綰跨▼涓悓鏃朵嬌鐢?榪欎簺綾繪垚涓哄彲鑳姐備絾鏄敞鎰忚繖浜涚被琚璁′負鍦ㄤ竴涓嚎紼嬩腑鍒涘緩鍜屼嬌鐢紱鍦ㄤ竴涓嚎紼嬩腑鍒涘緩涓涓璞$劧鍚庡湪鍙︿竴涓嚎紼嬩腑璋冪敤瀹冪殑鏂規硶鏄笉鑳戒繚璇佷竴瀹氳兘宸ヤ綔鐨勩傛湁涓?涓檺鍒舵潯浠惰娉ㄦ剰錛?br /> QObject鐨勫効瀛愬繀欏誨湪鍒涘緩瀹冪埞鐨勭嚎紼嬩腑鍒涘緩銆傝繖琛ㄧず錛屼綘姘歌繙涓嶈兘灝哘Thread瀵硅薄(this)浣滀負parent浼犵粰鍦ㄦthread鍒涘緩鐨勫璞★紝鍥犱負綰跨▼瀵硅薄鑷繁灝辨槸鍦ㄥ彟涓涓嚎紼嬩腑鍒涘緩鐨勩?br /> 浜嬩歡椹卞姩鐨勫璞″簲璇ュ彧鐢ㄤ簬涓涓嚎紼嬩腑銆傝繖涓鏉″挨鍏跺簲鐢ㄤ簬瀹氭椂鍣ㄥ拰緗戠粶妯″潡銆傛瘮濡傦紝浣犱笉鑳藉湪鍒涘緩瀵硅薄涔嬪鐨勭嚎紼嬩腑鍚姩涓涓畾鏃跺櫒鎴栬繛鎺ヤ竴涓猻ocket銆?br /> 浣犲繀欏諱繚璇佸湪綰跨▼涓垱寤虹殑涓鍒囧璞″湪QThread琚垹闄や箣鍓嶈鍒犻櫎銆傝繖鍙互閫氳繃鍦ㄤ綘鐨剅un()瀹炵幇涓湪媯т腑鍒涘緩瀵硅薄鏉ヨ交鏉炬悶瀹氥?br />
灝界QObject鏄彲閲嶅叆鐨勶紝浣咷UI綾伙紝灝ゅ叾鏄疩Widget鍜屽畠鎵鏈夌殑媧劇敓綾諱滑錛岄兘涓嶆槸鍙噸鍏ョ殑銆傚畠浠彧鑳藉湪涓葷嚎紼嬩腑浣跨敤銆俀CoreApplication::exec()蹇呴』鍦ㄨ繖涓嚎紼嬩腑璋冪敤銆?br />
鍦ㄥ疄闄呭簲鐢ㄤ腑錛屾渶濂界殑鏂瑰紡鏄妸鑰楁椂鐨勮綆楁斁鍒頒富綰跨▼涓榪涜錛屽畬鎴愬悗閫氱煡涓葷嚎紼嬫樉紺虹粨鏋溿?br />

Pre-Thread Event寰幆

姣?涓嚎紼嬮兘鍙互鏈夊畠鑷繁鐨勪簨浠跺驚鐜傚垵濮嬬殑綰跨▼浣跨敤QCoreApplication::exec()鏉ュ紑濮嬪畠鐨勪簨浠跺驚鐜紱鍏跺畠鐨勭嚎紼嬪彲浠ヤ嬌鐢?QThread::exec()鏉ュ惎鍔ㄥ驚鐜傚氨鍍廞CoreApplication錛孮Thread涔熸彁渚涗簡涓涓猠xit(int)鏂規硶鍜屼竴涓?quit()妲姐?br />
綰跨▼涓殑浜嬩歡寰幆浣垮緱鍦ㄧ嚎紼嬩腑浣跨敤渚濋潬娑堟伅寰幆鐨勯潪GUI鐨凲T綾繪垚涓哄彲鑳斤紙姣斿QTimer,QTcpSocket,QProcess錛夈傚畠涔熶嬌寰椾粠浠諱綍綰跨▼榪炴帴淇″彿鍒頒竴涓嚎紼嬬殑妲芥垚涓哄彲鑳姐傝繖鍦ㄤ笅闈㈢殑“淇″彿鍜屾Ы絀胯秺綰跨▼”涓鑺備腑鏈夎緇嗚В閲娿?br />
涓涓猀Object瀹炰緥鍦ㄩ偅涓嚎紼嬩腑鍒涘緩錛屽氨鍙仛“媧?#8221;鍦ㄩ偅涓嚎紼嬩腑銆傜粰榪欎釜瀵硅薄鐨勪簨浠朵滑閫氳繃綰跨▼鐨勪簨浠跺驚鐜淳鍙戙備竴涓猀Object瀵硅薄鎵“媧誨湪”鐨勭嚎紼嬮氳繃QObject::thread()鍙互鍙栧緱銆?br />
娉?鎰忓湪QApplication涔嬪墠鍒涘緩鐨凲Object璋冪敤QObject::thread()浼氳繑鍥?.榪欐剰鍛崇潃涓葷嚎紼嬪皢鍙負榪欎簺瀵硅薄澶勭悊閭瘎鐨勪簨浠訛紱 瀵逛簬娌℃湁綰跨▼鐨勫璞★紝鍏跺畠鐨勪簨浠跺鐞嗚窡鏈笉浼氬彂鐢熴備嬌鐢≦Object::moveToThread()鏂規硶鏉ユ敼鍙樺璞★紙鍜屽畠鍎垮瓙浠級鐨勭嚎紼嬶紙濡傛灉涓涓 璞℃湁鐖癸紝瀹冨氨涓嶈兘琚Щ鍔ㄥ埌鍙﹀綰跨▼錛夈?br />
鍦ㄦ嫢鏈夊璞′箣澶栫殑綰跨▼涓皟鐢ㄥ垹闄ゅ璞℃槸涓嶅畨鍏ㄧ殑錛岄櫎闈炰綘鑳戒繚璇佸湪琚垹闄ゆ椂涓嶅湪澶勭悊浜嬩歡銆備絾鍙互浣跨敤 QObject::deleteLater()錛屽畠浼氬瘎鍑篋eferedDelete浜嬩歡錛屽璞$殑綰跨▼鐨勪簨浠跺驚鐜渶緇堜細鎶撲綇瀹冦傞粯璁や笅錛屾嫢鏈?Qobject鐨勭嚎紼嬪氨鏄垱寤篞Object鐨勭嚎紼嬶紝浣嗗湪QObject::moveToTread()涔嬪悗灝卞彉浜嗐?br />
濡傛灉娌℃湁浜嬩歡寰幆錛屼簨浠跺皢涓嶈兘浼犵粰瀵硅薄銆傛瘮濡傦紝濡傛灉浣犲湪涓涓嚎紼嬩腑鍒涘緩涓涓猀Timer瀵硅薄錛屼絾鏄病鏈夊啀璋冪敤exec()錛岄偅涔圦Timer灝嗘案涓嶈兘瑙﹀彂timeout()淇″彿銆俤eleteLater()涔熶笉鍐嶈兘宸ヤ綔銆傦紙榪欎簺涔熷悓鏍烽傜敤浜庝富綰跨▼銆傦級

浣犲彲浠ュ湪浠諱綍綰跨▼涓嬌鐢≦CoreApp:postEvent()鎵嬪姩鍚戜換浣曞璞¢偖瀵勪簨浠躲備簨浠跺皢琚璞℃墍鍦ㄧ嚎紼嬬殑浜嬩歡寰幆鑷姩媧懼彂銆?br />
浜?浠惰繃婊ゅ櫒琚墍鏈夌殑綰跨▼鎵鏀寔錛屼絾鏈変釜闄愬埗鏉′歡錛氱洃瑙嗗璞″繀欏諱笌琚洃瑙嗗璞′綅浜庡悓涓涓嚎紼嬩腑銆傚悓鏍?鐨勶紝QCoreApplication::sendEvent()錛堜笉鍚屼簬 QCoreApplication::postEvent()錛夊彧鑳藉湪鍚屼竴綰跨▼涓殑瀵硅薄涔嬮棿鍙戦佷簨浠躲?br />

浠庡彟澶栫嚎紼嬭闂甉Object瀛愮被


QObject鍜屽畠鎵鏈夌殑瀛愮被閮戒笉鏄嚎紼嬪畨鍏ㄧ殑錛岃繖涔熷寘鍚暣涓簨浠舵淳閫佺郴緇熴傝璁頒綇錛屽綋浣犱粠鍙﹀綰跨▼璁塊棶瀵硅薄鏃訛紝浜嬩歡寰幆鍙兘媧鵑佷簨浠跺埌浣犵殑QObject瀛愮被銆?br />
濡傛灉浣犺皟鐢ㄤ竴涓潪鏈嚎紼嬬殑QObject鐨勫瓙綾葷殑鍑芥暟騫朵笖榪欎釜瀵硅薄鍙兘鎺ユ敹浜嬩歡錛屼綘蹇呴』鐢╩utex淇濇姢鎵鏈夊浣犵殑QObject瀛愮被鐨勫唴閮ㄦ暟鎹殑璁塊棶錛涘惁鍒欙紝浣犲彲鑳戒綋楠岀殑浠涔堝彨宕╂簝銆?br />
灝卞儚鍏跺畠瀵硅薄錛孮Thread瀵硅薄“媧?#8221;鍦ㄥ垱寤哄畠鐨勭嚎紼嬩腑錛岃屼笉鏄畠鑷繁鎵浠h〃鐨勭嚎紼嬩腑銆傞氬父鍦ㄤ綘鐨凲Thread瀛愮被涓彁渚涙Ы鏄笉瀹夊叏鐨勶紝闄ら潪浣犵敤mutex淇濇姢鎴愬憳鍙橀噺銆?br />
鍙︿竴鏂歸潰錛屼綘鍙互浠庝綘鐨凲Thread tun()涓畨鍏ㄧ殑鍙戝嚭淇″彿錛屽洜涓轟俊鍙峰彂灝勬槸綰跨▼瀹夊叏鐨勩?br />

絀胯秺綰跨▼鐨勪俊鍙峰拰妲戒滑


Qt鏀寔濡備笅淇″彿錛嶆Ы榪炴帴綾誨瀷錛?br />銆鑷姩榪炴帴錛堥粯璁わ級錛嶃濡傛灉淇″彿鏄粠鎺ユ敹瀵硅薄鎵鍦ㄧ殑綰跨▼鍙戝嚭鐨勶紝鍏惰涓轟笌“鐩存帴榪炴帴”鐩稿悓銆傚惁鍒欙紝鍏惰涓轟笌“闃熷垪榪炴帴”鐩稿悓銆?br />銆鐩存帴榪炴帴錛嶃褰撲俊鍙峰彂鍑猴紝妲戒細琚珛椹皟鐢ㄣ傛妲藉湪鍙戝嚭鑰呯殑綰跨▼涓墽琛岋紝鑰屼笉涓瀹氭槸鎺ユ敹鑰呮墍鍦ㄧ殑綰跨▼銆?br />銆闃熷垪榪炴帴錛嶃褰撴帶鍒惰繑鍥炲埌鎺ユ敹鑰呮墍鍦ㄧ嚎紼嬬殑浜嬩歡寰幆鏃惰皟鐢ㄣ傛Ы鍦ㄦ帴鏀惰呯殑綰跨▼涓墽琛屻?br />銆闃誨鐨勯槦鍒楄繛鎺ワ紞銆妲藉儚“闃熷垪榪炴帴”閭f牱琚皟鐢紝闄や簡涓鐐癸細褰撳墠綰跨▼浼氶樆濉炰綇鐩村埌妲借繑鍥炪傛敞錛氬湪鍚屼竴綰跨▼涓嬌鐢ㄦ綾誨瀷鐨勮繛鎺ュ皢瀵艱嚧姝婚攣錛?br />銆鍞竴榪炴帴錛嶃琛屼負涓?#8220;鑷姩榪炴帴”鐩稿悓錛屼絾榪炴帴蹇呴』鍦ㄦ棤澶嶅埗鍝佹椂鎵嶈兘寤虹珛銆備篃灝辨槸錛屽鏋滃湪鐩稿悓鐨勪袱涓璞′箣闂村凡緇忓緩绔嬩簡鍚屼竴涓俊鍙峰埌鍚屼竴涓Ы鐨勮繛鎺ワ紝閭d箞榪炴帴灝變笉鑳藉緩绔嬶紝connect()榪斿洖false銆?br />
榪炴帴綾誨瀷鍙互閫氳繃緇檆onnect()浼犻掍竴涓澶栫殑鍙傛暟鏉ユ寚瀹氥傛敞鎰忓綋鎺ユ敹鑰呭拰鍙戦佽呬綅浜庝笉鍚岀殑綰跨▼涓椂錛屼嬌鐢?#8220;鐩存帴榪炴帴”錛屽鏋滀簨浠跺驚鐜槸榪愯浜庢帴鏀惰呯殑綰跨▼涓紝姝ゆ椂鏄笉瀹夊叏鐨勶紝鍚岀悊璋冪敤浣嶄簬鍙﹀綰跨▼鐨勫璞$殑浠諱綍鍑芥暟閮芥槸涓嶅畨鍏ㄧ殑銆?br />
QObject::connect()鏈韓鏄嚎紼嬪畨鍏ㄧ殑銆?/div>

綾崇背 2013-06-05 16:40 鍙戣〃璇勮
]]>
Qt 鍔ㄧ敾璇﹁В浜?http://m.shnenglu.com/zhonghua/archive/2013/06/05/200815.html綾崇背綾崇背Wed, 05 Jun 2013 08:40:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200815.htmlhttp://m.shnenglu.com/zhonghua/comments/200815.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200815.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/200815.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/200815.html

灝嗗姩鐢諱滑寮勫埌涓璧?/strong>


涓涓簲鐢ㄩ氬父灝嗗寘鍚笉姝竴涓姩鐢匯備緥濡傦紝浣犲彲鑳芥兂鍚屾椂縐誨姩澶氫釜鍥懼艦item涔熷彲鑳介『搴忕殑涓涓帴涓涓殑縐誨姩銆?br />QanimationGroup 鐨勫瓙綾諱滑(QSequentialAnimationGroup鍜孮ParallelAnimationGroup)鏄叾瀹冨姩鐢葷殑瀹瑰櫒錛屾墍浠ヨ繖浜涘姩鐢繪棦鍙?浠ュ茍琛屼篃鍙互涓茶銆俀AnimationGroup鏄竴涓潪灞炴у姩鐢葷殑渚嬪瓙錛屼絾鏄畠瀹氭湡鐨勬敹鍒版椂闂存敼鍙樼殑閫氱煡銆傝繖浣垮緱瀹冨彲浠ユ妸鏃墮棿鏀瑰彉浼犺緭緇欐墍鍖呭惈鐨勫姩鐢?浠紝浠庤屾帶鍒朵綍鏃舵挱鏀鵑偅浜涘姩鐢諱滑銆?br />
璁╂垜浠湅涓涓嬩嬌鐢≦SequentialAnimatoinGroup鍜孮ParallelAnimationGroup鐨勪唬鐮佺ず渚嬨?br />QPushButton *bonnie = new QPushButton("Bonnie");
bonnie->show();
QPushButton *clyde = new QPushButton("Clyde");
clyde->show();
QPropertyAnimation *anim1 = new QPropertyAnimation(bonnie, "geometry");
// Set up anim1
QPropertyAnimation *anim2 = new QPropertyAnimation(clyde, "geometry");
// Set up anim2
QParallelAnimationGroup *group = new QParallelAnimationGroup;
group->addAnimation(anim1);
group->addAnimation(anim2);
group->start();
涓涓茍琛実roup鍦ㄥ悓涓鏃跺埢鎾斁澶氫釜鍔ㄧ敾銆傚start()鐨勮皟鐢ㄥ皢鍚姩瀹冩墍緇熸不鐨勬墍鏈夌殑鍔ㄧ敾銆?br />
QPushButton button("Animated Button");
button.show();
QPropertyAnimation anim1(&button, "geometry");
anim1.setDuration(3000);
anim1.setStartValue(QRect(0, 0, 100, 30));
anim1.setEndValue(QRect(500, 500, 100, 30));
QPropertyAnimation anim2(&button, "geometry");
anim2.setDuration(3000);
anim2.setStartValue(QRect(500, 500, 100, 30));
anim2.setEndValue(QRect(1000, 500, 100, 30));
QSequentialAnimationGroup group;
group.addAnimation(&anim1);
group.addAnimation(&anim2);
group.start();
QsequentialAnimationGroup欏哄簭鐨勬挱鏀懼畠鐨勫姩鐢諱滑銆傚畠鍦ㄤ笂涓涓畬鎴愭椂鎸夐『搴忔挱鏀句笅涓涓?br />

鏃㈢劧涓涓姩鐢葷粍鏈氨鏄竴涓姩鐢葷被錛屼綘鍙互鎶婂畠娣誨姞鍒板叾瀹冪粍涓傚姝わ紝浣犲彲浠ュ緩绔嬭搗涓涓姩鐢繪爲銆?br />


鍔ㄧ敾鍜岀姸鎬?/strong>
褰?浣跨敤鐘舵佹満錛屾垜浠彲浠ヤ嬌鐢ㄤ竴涓猀SignalTransition鎴朡EventTransition綾誨湪鐘舵佽漿鎹㈡椂榪炴帴涓涓垨澶氫釜鍔ㄧ敾銆傝繖浜涚被閮芥槸浠?QAbstractTransition媧劇敓鐨勶紝瀹冧滑瀹氫箟浜嗙畝鏄撶殑鍑芥暟addAnimation()錛屼嬌寰楄兘澶熸坊鍔犱竴涓垨澶氫釜鍔ㄧ敾錛屽湪鐘舵佽漿鎹㈡椂鍚姩榪欎簺 鍔ㄧ敾銆?br />
鎴戜滑榪樺彲鑳借繛鎺ュ睘鎬т笌鐘舵侊紝鑰屼笉鏄墜鍔ㄨ緗紑濮嬩笌緇撴潫鍊箋備笅闈㈡槸瀹屾暣鐨勪唬鐮侊紝婕旂ず浜嗗姩鐢諱竴涓猀PushButton鐨刧eometry灞炴с?br />
QPushButton *button = new QPushButton("Animated Button");
button->show();
QStateMachine *machine = new QStateMachine;
QState *state1 = new QState(machine);
state1->assignProperty(button, "geometry", QRect(0, 0, 100, 30));
machine->setInitialState(state1);
QState *state2 = new QState(machine);
state2->assignProperty(button, "geometry", QRect(250, 250, 100, 30));
QSignalTransition *transition1 = state1->addTransition(button,
SIGNAL(clicked()), state2);
transition1->addAnimation(new QPropertyAnimation(button, "geometry"));
QSignalTransition *transition2 = state2->addTransition(button,
SIGNAL(clicked()), state1);
transition2->addAnimation(new QPropertyAnimation(button, "geometry"));
machine->start();

綾崇背 2013-06-05 16:40 鍙戣〃璇勮
]]>
Qt 鍔ㄧ敾璇﹁В涓 http://m.shnenglu.com/zhonghua/archive/2013/06/05/200814.html綾崇背綾崇背Wed, 05 Jun 2013 08:39:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200814.htmlhttp://m.shnenglu.com/zhonghua/comments/200814.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200814.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/200814.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/200814.html

姒傝堪

Qt鍔ㄧ敾鏋舵瀯涓殑涓昏綾誨涓嬪浘鎵紺猴細



鍔ㄧ敾妗嗘灦鐢卞熀綾?/span>QAbstractAnimation鍜屽畠鐨勪袱涓効瀛?/span>QVariantAnimation鍜?/span>QAnimationGroup緇勬垚銆?/span>QAbstractAnimation鏄墍鏈夊姩鐢葷被鐨勭瀹椼傚畠鍖呭惈浜嗘墍鏈夊姩鐢葷殑鍩烘湰灞炴с傛瘮濡傚紑濮嬶紝鍋滄鍜屾殏鍋滀竴涓姩鐢葷殑鑳藉姏銆傚畠涔熷彲浠ユ帴鏀舵椂闂存敼鍙橀氱煡銆?/span>


鍔ㄧ敾妗嗘灦鍙堣繘涓姝ユ彁渚涗簡QProertyAnimation綾匯傚畠緇ф壙鑷?/span>QVariantAnimation騫跺鏌愪釜Qt灞炴э紙瀹冮』鏄?/span>Qt鐨?#8221;鍏冩暟鎹璞$郴緇?#8221;鐨勪竴閮ㄥ垎錛岃http://blog.csdn.net/nkmnkm/article/details/8225089錛夋墽琛屽姩鐢匯傛綾誨灞炴ф墽琛屼竴涓鏉炬洸綰挎彃鍊箋傛墍浠ュ綋浣犳兂鍘誨姩鐢諱竴涓兼椂錛屼綘鍙互鎶婂畠澹版槑涓轟竴涓睘鎬э紝騫朵笖璁╀綘鐨勭被鎴愪負涓涓?/span>QObject銆傝繖緇欎簣鎴戜滑鏋佸ぇ鐨勮嚜鐢卞害鏉ュ姩鐢婚偅浜涘凡瀛樺湪鐨?/span>widget鍜屽叾瀹?/span>QObject銆?/span>


澶嶆潅鐨勫姩鐢誨彲浠ラ氳繃寤虹珛涓涓?/span>QAbstractAnimation鐨勬爲鏉ユ瀯寤恒傝繖涓爲閫氳繃浣跨敤QAnimationGroups鏉ュ垱寤猴紝QAnimationGroups浣滀負鍏跺畠鍔ㄧ敾鐨勫鍣ㄣ傛敞鎰忓姩鐢葷粍涔熸槸浠?/span>QAbstractAnimation媧劇敓鐨勶紝鎵浠ュ姩鐢葷粍鍙互鍐嶅寘鍚叾瀹冨姩鐢葷粍銆?/span>


鍔ㄧ敾妗嗘灦鍙互鍗曠嫭浣跨敤錛屽悓鏃朵篃琚璁′負鐘舵佹満妗嗘灦鐨勪竴閮ㄥ垎銆傜姸鎬佹満鎻愪緵浜嗕竴涓壒瀹氱殑鐘舵佸彲浠ョ敤鏉ユ挱鏀懼姩鐢匯傚湪榪涘叆鎴栭鍑烘煇涓姸鎬佹椂QState涔熷彲浠ヨ緗睘鎬т滑錛屽茍涓旇繖涓壒瀹氱殑鍔ㄧ敾鐘舵佸皢鍦ㄦ寚瀹?/span>QPropertyAnimation鏃剁粰浜堢殑鍊間箣闂村仛鎻掑艱繍綆椼傚悗闈㈡垜浠榪涗竴姝ヤ粙緇嶆闂銆?/span>


鍦ㄥ満鏅殑鑳屽悗錛屽姩鐢昏涓涓叏灞瀹氭椂鍣ㄦ敹闆嗭紝榪欎釜瀹氭椂鍣ㄥ彂閫?/span>update鍒版墍鏈夌殑姝e湪鎾斁鐨勫姩鐢諱腑銆?/span>

鍔ㄧ敾妗嗘灦涓殑綾諱滑

QAbstractAnimation

鎵鏈夊姩鐢葷被鐨勫熀綾?/span>

QAnimationGroup

鍔ㄧ敾緇勭殑鍩虹被

QEasingCurve

鎺у埗鍔ㄧ敾鐨勫鏉炬洸綰跨被

QParallelAnimationGroup

騫惰鍔ㄧ敾緇勭被

QPauseAnimation

涓茶鍔ㄧ敾緇勭被鐨勬殏鍋滅被

QPropertyAnimation

鍔ㄧ敾Qt灞炴х殑綾?/span>

QSequentialAnimationGroup

涓茶鍔ㄧ敾緇勭被

QTimeLine

鎺у埗鍔ㄧ敾鐨勬椂闂寸嚎綾?/span>

QVariantAnimation

鍚勫姩鐢葷被鐨勮櫄鍩虹被


鍔ㄧ敾Qt灞炴т滑

濡傚墠闈㈡墍璁詫紝QPropertyAnimation綾誨彲浠ヤ慨鏀?/span>Qt灞炴т滑銆傝鍔ㄧ敾涓涓鹼紝灝遍渶瑕佷嬌鐢ㄦ綾匯傚疄闄呬笂錛屽畠鐨勭埗綾伙紝QVariantAnimation錛屾槸涓涓櫄鎷熺被錛屼笉鑳借鐩存帴浣跨敤銆?/span>


鎴戜滑閫夋嫨鍔ㄧ敾Qt灞炴х殑涓涓富瑕佺悊鐢辨槸Qt灞炴т負鎴戜滑鎻愪緵浜嗚嚜宸卞姩鐢誨凡瀛樺湪鐨勭被鐨勮嚜鐢卞害銆傚挨鍏舵槸QWidget綾伙紙鎴戜滑涔熷彲浠ユ妸瀹冨祵鍏ュ埌涓涓?/span>QGraphicsView涓級鍏鋒湁寰堝灞炴ц〃紺哄叾bounds,colors絳夌瓑銆傝鎴戜滑鐪嬩竴涓皬渚嬪瓙錛?/span>

  1. QPushButton button("Animated Button");  
  2. button.show();  
  3. QPropertyAnimation animation(&button, "geometry");  
  4. animation.setDuration(10000);  
  5. animation.setStartValue(QRect(0, 0, 100, 30));  
  6. animation.setEndValue(QRect(250, 250, 100, 30));  
  7. animation.start();  

榪欐浠g爜灝嗘妸鎸夐挳鍦?/span>10縐掔鍐呬粠灞忓箷鐨勫乏涓婅縐誨姩鍒?/span>(250,250)澶勩?/span>

涓婇潰鐨勪緥瀛愪婦鍦ㄥ紑濮嬪煎拰緇撴潫鍊間箣闂村仛綰挎ф彃鍊箋傝繕鍙互鍦ㄥ紑濮嬪拰緇撴潫鍊間箣闂磋緗鹼紝鎻掑艱繍綆楀氨浼氱粡榪囪繖浜涚偣銆?/span>


  1. QPushButton button("Animated Button");  
  2. button.show();  
  3. QPropertyAnimation animation(&button, "geometry");  
  4. animation.setDuration(10000);  
  5. animation.setKeyValueAt(0, QRect(0, 0, 100, 30));  
  6. animation.setKeyValueAt(0.8, QRect(250, 250, 100, 30));  
  7. animation.setKeyValueAt(1, QRect(0, 0, 100, 30));  
  8. animation.start();  

鍦ㄦ渚嬩腑錛屽姩鐢誨皢鎸夐挳鍦?縐掍腑鍐呭紕鍒?250,250)澶勶紝鐒跺悗鍦?縐掔鍐呭張寮勫洖鍘熶綅銆傜Щ浣嶆槸鍦ㄨ繖浜涚偣涓棿浠ョ嚎鎬ф彃鍊艱繘琛岀殑銆?/p>


浣?涔熸湁鍙兘鍔ㄧ敾涓涓猀Object鐨勫鹼紝铏界劧榪欎簺鍊煎茍娌℃湁琚0鏄庝負Qt灞炴с傚敮涓鐨勮姹傚氨鏄繖涓煎叿鏈変竴涓猻etter銆備箣鍚庝綘鍙互浠庤繖涓被媧劇敓瀛愮被浠庤屽寘 鍚繖浜涘煎茍涓斿0鏄庝竴涓嬌鐢ㄨ繖涓猻etter鐨勫睘鎬с傛敞鎰忔瘡涓猀t灞炴ч兘闇瑕佹湁涓涓猤etter錛屾墍浠ヤ綘闇瑕佹彁渚涗竴涓猤etter錛屽鏋滃畠涓嶅瓨鍦ㄧ殑璇濄?/p>

  1. class MyGraphicsRectItem : public QObject, public QGraphicsRectItem  
  2. {  
  3.     Q_OBJECT  
  4.     Q_PROPERTY(QRectF geometry READ geometry WRITE setGeometry)  
  5. };  

鍦ㄤ笂渚嬩腑錛屾垜浠淳鐢熶簡QGraphicsRectItem騫跺畾涔変簡涓涓猤eometry灞炴с傛垜浠幇鍦ㄥ彲浠ュ姩鐢昏繖涓獁idget鐨刧eometry浜嗭紝鍗充嬌QGraphicsRectItem娌℃湁鎻愪緵geometry灞炴с?/p>

鍔ㄧ敾鍜屽浘褰㈣鍥炬鏋?/span>

褰撲綘鎯沖姩鐢?/span>QGraphicsItems錛屼綘涔熻鐢?/span>QPropertyAnimation銆傜劧鑰岋紝QGraphicsItem涓嶆槸浠?/span>QObject媧劇敓鐨勩備竴涓ソ鐨勮В鍐蟲柟妗堟槸媧劇敓瑕佸姩鐢葷殑鍥懼艦item銆傛淳鐢熺被涔熻浠?/span>QObject媧劇敓銆傝繖鏍鳳紝QPropertyAnimation灝卞彲浠ヨ鐢ㄤ簬QGraphicsItems浜嗐?/span>

  1. class Pixmap : public QObject, public QGraphicsPixmapItem  
  2. {  
  3.     Q_OBJECT  
  4.     Q_PROPERTY(QPointF pos READ pos WRITE setPos)  
  5.     ...  

灝卞涓婁竴鑺備腑鎵璁茬殑錛屾垜浠渶瑕佸畾涔夊笇鏈涘幓鍔ㄧ敾鐨勫睘鎬с?/span>

娉ㄦ剰錛?/span>QObject蹇呴』鏄戶鎵夸腑鐨勭涓涓紝鍥犱負鍏冩暟鎹璞$郴緇熼渶瑕佽繖鏍峰仛銆?/span>

瀹芥澗鏇茬嚎

QPropertyAnimation鍦ㄥ睘鎬х殑寮濮嬪煎拰緇撴潫鍊間箣闂存墽琛屼竴涓彃鍊艱繍綆椼傞櫎浜嗗悜鍔ㄧ敾娣誨姞鏇村鐨勫叧閿煎錛屼綘榪樺彲浠ヤ嬌鐢ㄤ竴涓鏉炬洸綰褲傚鏉炬洸綰挎弿榪頒簡涓涓湪0鍜?/span>1涔嬮棿鎻掑肩殑閫熷害鍙樺寲鐨勫嚱鏁幫紝濡傛灉浣犳兂鎺у埗涓涓姩鐢葷殑閫熷害鑰屼笉鏀瑰彉鎻掑肩殑璺緞鏃訛紝灝遍潪甯告湁鐢ㄣ?/span>


  1. QPushButton button("Animated Button");  
  2. button.show();  
  3. QPropertyAnimation animation(&button, "geometry");  
  4. animation.setDuration(3000);  
  5. animation.setStartValue(QRect(0, 0, 100, 30));  
  6. animation.setEndValue(QRect(250, 250, 100, 30));  
  7. animation.setEasingCurve(QEasingCurve::OutBounce);  
  8. animation.start();  

榪欓噷錛屽姩鐢誨皢鎸夌収涓涓洸綰胯繘琛岋紝榪欎釜鏇茬嚎浣垮緱鍔ㄧ敾鍍忎竴涓煩鍔ㄧ殑鐨悆浠庡紑濮嬩綅緗煩鍒扮粨鏉熶綅緗?/span>QEasingCurve鍏鋒湁涓涓ぇ鏇茬嚎闆嗗悎錛屼綘鍙互浠庨噷闈㈤夋嫨涓涓傚畠浠瀹氫箟涓?/span>QEasingCurve::Type鏋氫婦銆傚鏋滀綘闇瑕佷笉涓鏍風殑鏇茬嚎錛屼綘涔熷彲浠ヨ嚜宸卞疄鐜頒竴涓紝鐒跺悗娉ㄥ唽鍒?/span>QEasingCurve銆?/span>



綾崇背 2013-06-05 16:39 鍙戣〃璇勮
]]>
Qt灞炴х郴緇熻瑙?http://m.shnenglu.com/zhonghua/archive/2013/06/05/200808.html綾崇背綾崇背Wed, 05 Jun 2013 01:53:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200808.htmlhttp://m.shnenglu.com/zhonghua/comments/200808.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/06/05/200808.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/200808.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/200808.html

Qt鎻愪緵浜嗕竴涓粷濡欑殑灞炴х郴緇熴傝窡閭d簺鐢辯紪璇戝櫒鎻愪緵鐨勫睘鎬у樊涓嶅銆傜劧鑰岋紝浣滀負涓涓嫭绔嬩簬緙栬瘧鍣ㄥ拰騫沖彴鐨勫簱錛孮t涓嶄緷璧栦簬闈炴爣鍑嗙殑緙栬瘧鐗規э紝姣斿 __property 鎴朳property]銆俀t鍙互鍦ㄤ換浣曞鉤鍙頒笂鐨勬爣鍑嗙紪璇戝櫒涓嬬紪璇戙俀t灞炴х郴緇熷熀浜庡厓鏁版嵁瀵硅薄緋葷粺錛嶏紞灝辨槸閭d釜鎻愪緵浜嗗璞″唴緗俊鍙峰拰妲介氳鏈哄埗鐨勫浼欍?br />


澹版槑灞炴ч渶瑕佷粈涔?br />


瑕佸0鏄庝竴涓睘鎬э紝闇鍦ㄧ戶鎵胯嚜QObject鐨勭被涓嬌鐢≦_PROPERTY()瀹忋?br />Q_PROPERTY(type name
   READ getFunction
   [WRITE setFunction]
   [RESET resetFunction]
   [NOTIFY notifySignal]
   [DESIGNABLE bool]
   [SCRIPTABLE bool]
   [STORED bool]
   [USER bool]
   [CONSTANT]
   [FINAL])

涓嬮潰鏄竴浜涘吀鍨嬬殑澹版槑灞炴х殑紺轟緥錛?/p>

  1. Q_PROPERTY(bool focus READ hasFocus)  
  2. Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)  
  3. Q_PROPERTY(QCursor cursor READ cursor WRITE setCursor RESET unsetCursor)  
  • 涓涓睘鎬х殑琛屼負灝卞儚綾葷殑鏁版嵁鎴愬憳錛屼絾鏄畠榪樺叿鏈夐檮鍔犵殑鐗規э紝榪欎簺鐗規у彲浠ヨ鍏冩暟鎹璞$郴緇熸搷浣溿傝繖浜涚壒鎬ф槸錛?br />闇瑕佷竴涓猂EAD璁塊棶鍣ㄥ嚱鏁般傜敤浜庤灞炴х殑鍊箋傜悊鎯蟲儏鍐典笅錛屾湁涓涓笉鍙樼殑鍑芥暟鐢ㄤ簬姝ょ洰鐨勶紝騫朵笖瀹冨繀欏昏繑鍥炲睘鎬х殑綾誨瀷鐨勫兼垨鎸囬拡鎴栧紩鐢ㄣ備緥濡傦紝QWidget::focus鏄竴涓彧璇葷殑灞炴э紝瀹冨搴斾竴涓鍑芥暟錛歈Widget::hasFocus()銆?/li>
  • 涓 涓彲閫夌殑WRITE璁塊棶鍣ㄥ嚱鏁般傚畠鐢ㄤ簬璁劇疆灞炴х殑鍊箋傚畠蹇呴』榪斿洖絀哄茍涓旇嚦灝戝叿鏈変竴涓弬鏁幫紝鍙傛暟鏄睘鎬х被鍨嬬殑鍊兼垨鎸囬拡鎴栧紩鐢ㄣ備緥 濡傦細QWidget::enabled鍏鋒湁WRITE鍑芥暟QWidget::setEnable()銆傚彧璇誨睘鎬т笉闇瑕佸啓鍑芥暟銆備緥 濡傦紝QWidget::focus娌℃湁瀵瑰簲鐨勫啓鍑芥暟銆?/li>
  • 涓涓彲閫夌殑RESET鍑芥暟銆傜敤浜庤緗睘鎬х殑鍊煎埌瀹冪殑榛樿鍊箋備緥 濡傦細QWidget::cursor鍏鋒湁鍏稿瀷鐨凴EAD鍜學RITE鍑芥暟錛孮Widget::cursor()鍜?QWidget::setCursor()錛屽茍涓斿畠涔熷叿鏈変竴涓猂ESET鍑芥暟錛孮Widget::unsetCursor()銆俁ESET鍑芥暟蹇呴』榪斿洖 void騫朵笖涓嶅甫鏈変換浣曞弬鏁般?/li>
  • 涓涓彲閫夌殑NOTIFY淇″彿銆傚鏋滆瀹氫箟浜嗭紝淇″彿灝嗗湪灞炴х殑鍊兼敼鍙樻椂鍙戝嚭銆備俊鍙峰繀欏誨甫鏈変竴涓弬鏁幫紝榪欎釜鍙傛暟鐨勭被鍨嬪繀欏諱笌灞炴х浉鍚岋紱鍙傛暟淇濆瓨鐨勬槸灞炴х殑鏂板箋?/li>
  • 涓涓狣ESIGNABLE鍙橀噺琛ㄦ槑姝ゅ睘鎬ф槸鍚﹀湪鐣岄潰璁捐鍣ㄧ殑灞炴х紪杈戝櫒涓嚭鐜般傚ぇ澶氭暟灞炴ф槸鍙鐨勶紝闄や簡涓鴻繖涓彉閲忎紶鍏rue鎴杅alse錛屼綘榪樺彲浠ユ寚瀹氫竴涓猙ool鍨嬬殑鎴愬憳鍑芥暟銆?/li>
  • SCRIPTABLE鍙橀噺琛ㄦ槑榪欎釜灞炴ф槸鍚﹀彲浠ヨ涓涓剼鏈紩鎿庢搷浣滐紙榛樿鏄痶rue錛夈備綘涔熷彲浠ヨ祴浜堝畠true鎴杅alse鎴朾ool鍨嬪嚱鏁般?/li>
  • STORED 鍙橀噺琛ㄦ槑浜嗗睘鎬ф槸鍚﹁璁や負鏄嫭绔嬪瓨鍦ㄨ繕鏄緷璧栦簬鍏跺畠鐨勫艱屽瓨鍦ㄣ傚畠涔熻〃鏄庢槸鍚﹀湪淇濆瓨瀵硅薄鐘舵佹椂淇濆瓨姝ゅ睘鎬х殑鍊箋傚ぇ澶氭暟灞炴ч兘鏄渶瑕佷繚瀛樼殑錛屼絾鏄紝濡?QWidget::minimumWidth()灝辨槸涓嶈淇濆瓨鐨勶紝鍥犱負瀹冪殑鍊兼槸浠庡彟涓涓睘鎬Widget::minimumSize()寰楁潵鐨勩?/li>
  • USER鍙橀噺琛ㄦ槑灞炴ф槸鍚﹁璁捐涓洪潰鍚戠敤鎴風殑鎴栫敤鎴峰彲淇敼鐨勭被灞炴с傞氬父錛屾瘡涓被鍙湁涓涓猆SER灞炴с備緥濡傦紝QAbstractButton::checked鏄寜閽被鐨勭敤鎴峰彲淇敼灞炴с傛敞鎰廞ItemDelegate鑾峰彇鍜岃緗畐idget鐨刄SER灞炴с?/li>
  • CONSTANT鐨勫嚭鐜拌〃鏄庡睘鎬х殑鍊兼槸涓嶅彉鐨勩傚浜庝竴涓猳bject瀹炰緥錛屽父閲忓睘鎬х殑READ鏂規硶鍦ㄦ瘡嬈¤璋冪敤鏃跺繀欏昏繑鍥炵浉鍚岀殑鍊箋傛甯擱噺鍊煎彲鑳藉湪涓嶅悓鐨刼bject瀹炰緥涓笉鐩稿悓銆備竴涓父閲忓睘鎬т笉鑳藉叿鏈塛RITE鏂規硶鎴朜OYIFY淇″彿銆?/li>
  • FINAL鍙橀噺鐨勫嚭鐜拌〃鏄庡睘鎬т笉鑳借媧劇敓綾繪墍閲嶅啓銆傛湁浜涙儏鍐典笅錛岃繖鍙互鐢ㄤ簬鏁堢巼浼樺寲錛屼絾涓嶆槸琚玬oc寮哄埗鐨勩傜▼搴忓憳蹇呴』姘歌繙娉ㄦ剰涓嶈兘閲嶅啓涓涓狥INAL灞炴с?br />

READ錛學RITE鍜孯ESET鍑芥暟閮藉彲浠ヨ緇ф壙銆傚畠浠篃鍙互鏄櫄鍑芥暟銆傚綋瀹冧滑鍦ㄨ澶氶噸緇ф壙涓緇ф壙鏃訛紝瀹冧滑蹇呴』鍑虹幇鍦ㄧ涓涓緇ф壙鐨勭被涓?br />
灞炴х殑綾誨瀷鍙互鏄QVariant鏀寔鐨勬墍鏈夌被鍨嬶紝涔熷彲浠ユ槸鐢ㄦ埛瀹氫箟鐨勭被鍨嬨傚湪涓嬮潰鐨勪緥瀛愪腑錛岀被QDate琚綋浣滅敤鎴瘋嚜瀹氫箟綾誨瀷銆?br /> Q_PROPERTY(QDate data READ getDate WRITE setDate)
鍥犱負QDate鏄敤鎴峰畾涔夌殑錛屼綘蹇呴』鍖呭惈<QDate>澶存枃浠躲?br />
瀵?浜嶲Map,QList鍜孮ValueList灞炴э紝灞炴х殑鍊兼槸涓涓猀Variant錛屽畠鍖呭惈鏁翠釜list鎴杕ap銆傛敞鎰廞_PROPERTY瀛楃涓蹭笉鑳?鍖呭惈閫楀彿錛屽洜涓洪楀彿浼氬垝鍒嗗畯鐨勫弬鏁般傚洜姝わ紝浣犲繀欏諱嬌鐢≦Map浣滀負灞炴х殑綾誨瀷鑰屼笉鏄疩Map<QString,QVariant>銆備負浜嗕繚鎸?涓鑷存э紝涔熼渶瑕佺敤QList鍜孮ValueList鑰屼笉鏄疩List<QVariant>鍜?QValueList<QVariant>銆?/p>


閫氳繃鍏冩暟鎹璞$郴緇熻鍐欏睘鎬?br />

涓 涓睘鎬у彲浠ヤ嬌鐢ㄥ父瑙勫嚱鏁癚Object::property()鍜孮Object::setProperty()榪涜璇誨啓錛屼笉鐢ㄧ煡閬撳睘鎬ф墍鍦ㄧ被鐨勪換浣曠粏 鑺傦紝闄や簡灞炴х殑鍚嶅瓧銆傚湪涓嬮潰鐨勫皬浠g爜鐗囨涓紝璋冪敤QAbstractButton::setDown()鍜孮Object::setProperty() 閮芥妸灞炴ц緗負“down”銆?/p>

  1. QPushButton *button = new QPushButton;  
  2. QObject *object = button;  
  3. button->setDown(true);  
  4. object->setProperty("down", true);  

閫?榪嘩RITE鎿嶄綔鍣ㄦ潵鎿嶄綔涓涓睘鎬ф槸涓婇潰涓よ呬腑鏇村ソ鐨勶紝鍥犱負瀹冨揩騫朵笖鍦ㄧ紪璇戞椂緇欎簬鏇村ソ鐨勮瘖鏂府鍔╋紝浣嗘槸浠ヨ繖縐嶆柟寮忚緗睘鎬ц姹備綘蹇呴』鍦ㄧ紪璇戞椂浜嗚В鍏剁被銆傞?榪囧悕瀛楁潵鎿嶄綔灞炴т嬌浣犲彲浠ユ搷浣滃湪緙栬瘧鍣ㄤ綘涓嶄簡瑙g殑綾匯備綘鍙互鍦ㄨ繍琛屾椂鍙戠幇涓涓被鐨勫睘鎬т滑錛岄氳繃鏌ヨ瀹冪殑QObject,QMetaObject鍜?QMetaProerties銆?/p>

  1. QObject *object = ...  
  2. const QMetaObject *metaobject = object->metaObject();  
  3. int count = metaobject->propertyCount();  
  4. for (int i=0; i<count; ++i) {  
  5.     QMetaProperty metaproperty = metaobject->property(i);  
  6.     const char *name = metaproperty.name();  
  7.     QVariant value = object->property(name);  
  8.     ...  
  9. }  

鍦ㄤ笂闈㈢殑浠g爜鐗囨涓紝QMetaObject::property()琚敤浜庤幏鍙栨湭鐭ョ被涓殑灞炴х殑metadata銆備粠metadata涓幏鍙栧睘鎬у悕鐒跺悗浼犵粰QObject::property()鏉ヨ幏鍙?br />

涓涓畝鍗曚緥瀛?br />


鍋?璁炬垜浠湁涓涓被MyClass錛屽畠浠嶲Object媧劇敓騫朵笖鍦ㄥ畠鐨刾rivate鍖轟嬌鐢? 浜哘_OBJECT瀹忋傛垜浠兂鍦∕yClass綾諱腑澹版槑涓涓睘鎬ф潵鎸佺畫榪借釜涓涓狿riorty鍊箋傚睘鎬х殑鍊煎彨鍋歱riority錛屽茍涓斿畠鐨勭被鍨嬫槸涓涓湪綾?MyClass涓畾涔夌殑鍙仛Priority鐨勬灇涓俱?br />
鎴戜滑鍦ㄧ被鐨刾rivate鍖轟嬌鐢≦_PROPERTY()鏉ュ0鏄庡睘鎬с俁EAD鍑芥暟 鍙仛priority,騫朵笖鎴戜滑鍖呭惈涓涓猈RITE鍑芥暟鍙仛setPriority銆傛灇涓劇被鍨嬪繀欏諱嬌鐢≦_ENUMS()娉ㄥ唽鍒板厓鏁版嵁瀵硅薄緋葷粺涓傛敞鍐屼竴 涓灇涓劇被鍨嬩嬌寰楁灇涓劇殑鍚嶅瓧鍙互鍦ㄨ皟鐢≦Object::setProperty()鏃朵嬌鐢ㄣ傛垜浠繕蹇呴』涓篟EAD鍜學RITE鍑芥暟鎻愪緵鎴戜滑鑷繁鐨勫0鏄庛?MyClass鐨勫0鏄庣湅璧鋒潵搴旇鏄繖鏍風殑錛?/p>

  1. class MyClass : public QObject  
  2. {  
  3.     Q_OBJECT  
  4.     Q_PROPERTY(Priority priority READ priority WRITE setPriority)  
  5.     Q_ENUMS(Priority)  
  6. public:  
  7.     MyClass(QObject *parent = 0);  
  8.     ~MyClass();  
  9.     enum Priority { High, Low, VeryHigh, VeryLow };  
  10.     void setPriority(Priority priority);  
  11.     Priority priority() const;  
  12. };  

READ鍑芥暟鏄痗onst鐨勫茍涓旇繑鍥炲睘鎬х殑綾誨瀷銆俉RITE鍑芥暟榪斿洖void騫朵笖鍏鋒湁涓涓睘鎬х被鍨嬬殑鍙傛暟銆傚厓鏁版嵁瀵硅薄緙栬瘧鍣ㄥ己鍒跺仛榪欎簺浜嬫儏銆?br />
鍦ㄦ湁浜嗕竴涓寚鍚慚yClass瀹炰緥鐨勬寚閽堟椂錛屾垜浠湁涓ょ鏂規硶鏉ヨ緗畃riority灞炴э細

  1. MyClass *myinstance = new MyClass;  
  2.  QObject *object = myinstance;  
  3.  myinstance->setPriority(MyClass::VeryHigh);  
  4.  object->setProperty("priority", "VeryHigh");  

鍦?姝や緥瀛愪腑錛屾灇涓劇被鍨嬪湪MyClass涓0鏄庡茍琚嬌鐢≦_ENUMS()娉ㄥ唽鍒板厓鏁版嵁瀵硅薄緋葷粺涓傝繖浣垮緱鏋氫婦鍊煎彲浠ュ湪璋冪敤setProperty()鏃跺仛涓?瀛楃涓蹭嬌鐢ㄣ傚鏋滄灇涓劇被鍨嬫槸鍦ㄥ叾瀹冪被涓0鏄庣殑錛岄偅涔堟垜浠氨闇瑕佺敤鏋氫婦鐨勫叏鍚嶏紙濡侽therClass::Priority)錛屽茍涓旇繖涓叾瀹冪被涔熷繀欏諱粠 QObject涓淳鐢熷茍涓斾篃瑕佹敞鍐屾灇涓劇被鍨嬨?br />鍙︿竴涓畝鍗曠殑Q_FLAGS()涔熸槸鍙敤鐨勩傚氨鍍廞_ENUMS()錛屽畠娉ㄥ唽涓涓灇涓劇被鍨嬶紝浣嗘槸瀹冩妸 鏋氫婦綾誨瀷浣滀負涓涓猣lag鐨勯泦鍚堬紝涔熷氨鏄紝鍊煎彲浠ョ敤OR鎿嶄綔鏉ュ悎騫躲備竴涓狪/O綾誨彲鑳藉叿鏈夋灇涓懼糝ead鍜學rite騫朵笖 QObject::setProperty()鍙互鎺ュ彈 Read|Write銆傛鏃跺簲浣跨敤Q_FLAGS()鏉ユ敞鍐屾灇涓懼箋?br />

鍔ㄦ佸睘鎬?br />

Qobject::setProperty() 涔熷彲浠ョ敤鏉ュ湪榪愯鏃跺悜涓涓被鐨勫疄渚嬫坊鍔犳柊鐨勫睘鎬с傚綋浣跨敤涓涓悕瀛楀拰鍊艱皟鐢ㄥ畠鏃訛紝濡傛灉涓涓搴旂殑灞炴у凡緇忓瓨鍦紝騫朵笖濡傛灉鍊肩殑綾誨瀷涓庡睘鎬х殑綾誨瀷鍏煎錛岄偅涔堝煎氨 琚瓨鍌ㄥ埌灞炴т腑錛岀劧鍚庤繑鍥瀟rue銆傚鏋滃肩被鍨嬩笉鍏煎錛屽睘鎬х殑鍊煎氨涓嶄細鍙戠敓鏀瑰彉錛屽氨浼氳繑鍥瀎alse銆備絾鏄鏋滃搴斿悕瀛楃殑灞炴т笉瀛樺湪錛岄偅涔堜竴涓柊鐨勫睘鎬у氨 璇炵敓浜嗭紝浠ヤ紶鍏ョ殑鍚嶅瓧涓哄悕錛屼互浼犲叆鐨勫間負鍊鹼紝浣嗘槸渚濈劧浼氳繑鍥瀎alse銆傝繖琛ㄧず榪斿洖鍊間笉鑳界敤浜庣‘瀹氫竴涓睘鎬ф槸鍚﹁璁劇疆鍊鹼紝闄ら潪浣犲凡緇忕煡閬撹繖涓睘鎬у凡緇忓瓨鍦?浜嶲Object涓簡銆?br />娉ㄦ剰鍔ㄦ佸睘鎬ц娣誨姞鍒板崟涓疄鐜扮殑鍩虹涓紝涔熷氨鏄紝琚坊鍔犲埌QObject錛岃屼笉鏄疩MetaObject銆備竴涓睘鎬у彲浠ヤ粠 涓涓疄渚嬩腑鍒犻櫎錛岄氳繃浼犲叆灞炴х殑鍚嶅瓧鍜岄潪娉曠殑QVariant鍊肩粰QObject::setProperty()銆傞粯璁ょ殑QVariant鏋勯犲櫒鏋勯犱竴涓?闈炴硶鐨凲Variant銆?br />鍔ㄦ佸睘鎬у彲鐢≦Object::property()鏉ユ煡璇紝灝辮浣跨敤Q_PROPERTY()澹版槑鐨勫睘鎬т竴鏍楓?/p>

灞炴у拰鑷畾涔夌被鍨?br />

琚睘鎬т嬌鐢ㄧ殑鑷畾涔夌被鍨嬮渶瑕佷嬌鐢≦_DECLARE_METATYPE()瀹忔敞鍐岋紝浠ヤ嬌瀹冧滑鐨勫艱兘琚繚瀛樺湪QVariant瀵硅薄涓傝繖浣垮緱瀹冧滑鍙互鐢ㄤ簬琚玅_PROPERTY()澹版槑鐨勯潤鎬佺被鍨嬩腑錛屼篃鍙互琚敤浜庡姩鎬佺被鍨嬩腑銆?/p>

綾崇背 2013-06-05 09:53 鍙戣〃璇勮
]]>
QGrapicsItem綾? http://m.shnenglu.com/zhonghua/archive/2013/05/24/200561.html綾崇背綾崇背Fri, 24 May 2013 03:08:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/05/24/200561.htmlhttp://m.shnenglu.com/zhonghua/comments/200561.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/05/24/200561.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/200561.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/200561.htmlQGraphicsItem綾繪槸瑙嗗浘妗嗘灦鐨勪竴閮ㄥ垎錛屾槸鍦ㄤ竴涓猀GraphicsScene涓渶鍩烘湰鐨勫浘褰㈢被錛屽畠涓虹粯鍒朵綘
 
 
 
鑷繁鐨刬tem鎻愪緵浜嗕竴涓交閲忕駭鐨勭獥鍙o紝鍖呮嫭澹版槑item鐨勪綅緗紝紕版挒媯嫻嬶紝緇樺埗閲嶈澆鍜宨tem涔嬮棿鐨勭浉
 
 
 
浜掍綔鐢ㄩ氳繃浜嬩歡澶勭悊
 
Qt鎻愪緵浜嗕竴緋誨垪鏍囧噯鐨刬tems瀵逛竴浜涘父瑙佺殑鍥懼儚錛岄潪甯哥殑鏂逛究錛屾湁涓嬮潰榪欎簺錛?br /> 
QGraphicsEllipseItem  鎻愪緵涓涓き鍦唅tem
 
QGraphicsLineItem     鎻愪緵涓鏉$嚎鐨刬tem
 
QGraphicsPathItem     鎻愪緵涓涓換鎰忕殑璺緞item
 
QGraphicsPixmapItem   鎻愪緵涓涓浘褰tem
 
QGraphicsPolygonItem  鎻愪緵涓涓杈瑰艦item
 
QGraphicsRectItem     鎻愪緵涓涓煩褰tem
 
QGraphicsSimpleTextItem 鎻愪緵涓涓畝鍗曠殑鏂囨湰item
 
QGraphicsTextItem     鎻愪緵涓涓枃鏈祻瑙坕tem
 
item 鐨勬墍鏈夊嚑浣曚綅緗俊鎭兘寤虹珛鍦ㄦ湰鍦板潗鏍囩郴緇熶笂錛宨tem鐨勪綅緗紝浣跨敤pos()鑾峰緱錛屾槸鍞竴涓涓笉鍐嶆湰鍦癷tem涓疄鐜扮殑銆傚畠榪斿洖鐨勬槸item鍦ㄧ埗浜插潗鏍囩郴 緇熶腑鐨勪綅緗紝鍏充簬鍧愭爣緋葷粺鍙互璇︾粏鍙傜湅 The Graphics View Coordinate System
 
 
 
閫?榪囪皟鐢ㄥ摢涓猻etVisible()錛屽彲浠ヨ緗甶tem鏄惁鍙錛岄殣钘忎竴涓猧tem鍚屾椂涔熼殣钘忎簡浠栫殑瀛╁瓙錛岀浉浼肩殑錛屼綘鍙互閫氳繃璋冪敤 setEnabled()鏉ユ槸鎸噄tem鏄惁鍙敤銆傚鏋滅鐢ㄤ簡item錛岄偅涔堝畠鎵鏈夌殑瀛╁瓙閮戒笉鍙敤銆傞粯璁ょ殑錛宨tems閮芥槸鍙鍜屽彲鐢ㄧ殑銆傛潵寮鍏充竴涓?item鏄惁琚夋嫨錛岄鍏堥氳繃璁劇疆itemsSelectable flag鏉ヤ嬌鑳介夋嫨銆傜劧鍚庤皟鐢╯etSelect()錛岄氬父錛屾槸鍚﹀彲琚夋嫨鐨勫紑鍏蟲椂鎵撳紑鐨?br /> 
 
 
鍐欒嚜宸辯殑item鍥懼艦錛岄鍏堝簲璇ョ戶鎵縌GraphicsItem,鐒跺悗閲嶅啓浠栫殑涓や釜綰櫄鍏叡鍑芥暟錛?

boundingRect()鍜宲aint()錛岀涓涓嚱鏁拌繑鍥炵粯鍒秈tem澶ф鐨勫尯鍩燂紝絎簩涓嚱鏁扮敤鏉ョ粯鍒秈tem鍐呭
 
 
 


boundingRect() 鍑芥暟鏈夊緢澶氱敤澶勶紝鍦烘櫙鍦╞oundingRect()鏉ュ緩绔嬪畠鐨刬tem鐨刬ndex錛岃鍥緑iew浣跨敤瀹冩潵鍓垏鍙鐨刬tem錛屽湪閲嶆柊緇樺埗item鏃?鍊欙紝鏉ュ喅瀹氱浉浜掗噸鍙犵殑閮ㄥ垎錛屾澶栵紝item鐨勭鎾炴嫻嬫満鍒朵篃浣跨敤鐨刡oundingRect()鏉ユ彁渚涗竴涓珮鏁堢殑瀹氱偣錛屽湪 collidesWithItem()鏇村ソ鐨勭鎾炵畻娉曞緩绔嬪湪璋冪敤鍑芥暟shape(),shape()鍑芥暟浠painterPath綾誨瀷榪斿洖item鐨勭簿 鍑嗙殑杞粨銆?br /> 
涓鑸殑錛屽満鏅笉甯屾湜item鐨刡oundingRect()鍜宻hape()鍙樺寲錛岄櫎闈炶item琚氬憡錛屽鏋滄兂閫氳繃涓浜涙柟娉曟敼鍙榠tem鐨勫艦鐘訛紝棣栧厛搴旇璋冪敤QgraphicsScene()鏉ュ厑璁稿満鏅疩graphicsScene鏉ュ埛鏂板畠鐨刬tem璁板綍銆?br /> 
 
 
紕版挒媯嫻嬪彲浠ラ氳繃涓嬮潰涓ょ鏂規硶鏉ュ畬鎴?br /> 
1銆侀噸鍐檚hape()鍑芥暟鏉ヨ繑鍥瀒tem鐨勭簿鍑嗚疆寤擄紝渚濋潬榛樿鐨刢ollidesWithItem()鏉ュ仛澶栧艦浜ら泦銆傚鏋渋tem杞粨鍜屽鏉傛椂鍊欙紝榪欎釜娑堣楁槸寰堝ぇ鐨?br /> 
2銆侀噸鍐檆ollidesWithItem()錛屾彁渚涗竴涓嚜宸辯殑item鍜岃疆寤撶鎾炵殑綆楁硶
 
 
 
Contains錛堬級鍑芥暟鍙互璋冪敤錛岀敤鏉ュ喅瀹氫竴涓猧tem鏄惁鍖呭惈涓涓偣銆傝繖涓嚱鏁頒篃鍙互閲嶅啓錛宑ontains()鍑芥暟榛樿鐨勬柟娉曟槸閫氳繃璋冪敤shape錛堬級鏉ュ畬鎴愮殑銆?br /> 
Items涓篃鍙互鍖呭惈鍏朵粬鐨刬tems,涔熷彲浠ヨ鍒殑items鍖呭惈錛屾墍鏈夌殑items鍙互鏈変竴涓埗浜瞚tem鍜屼竴涓插瀛恑tems,闄ら潪涓涓猧tem娌℃湁鐖朵翰錛屽惁鍒欏畠鐨勪綅緗槸鍦ㄧ埗浜插潗鏍囦腑錛岀埗浜瞚tems閬椾紶浠栫殑浣嶇疆鍜岃漿鎹㈢粰瀛╁瓙item
 
杞崲
 
QgraphicsItem 鏀寔鎶曞皠杞崲錛屾湁寰堝鏂規硶鏉ユ敼鍙榠tem鐨勮漿鎹紝瀵逛簬綆鍗曠殑杞崲錛屽彲浠ヨ皟鐢ㄥ嚱鏁皊etRotation()鎴栬卻etScale()錛屽彲浠ヤ紶閫掍竴涓漿鎹㈢煩 闃電粰鍑芥暟setTransform(),瀵逛簬涓浜涙洿澶嶆潅鐨勮漿鎹紝鍙互閫氳繃璋冪敤鍑芥暟setTransformations()鏉ヨ緗竴緋誨垪緇勫悎鐨勮漿鎹€?br /> 
Item 杞崲浠庣埗浜插埌瀛╁瓙榪涜鑱氶泦錛屽洜姝ゅ鏋滀竴涓埗浜插拰瀛╁瓙item閮芥棆杞?0搴︼紝閭d箞瀛╁瓙灝辨棆杞簡180搴︼紝鐩鎬技鐨勶紝濡傛灉鐖朵翰item鏀懼ぇ浜?X鍊嶏紝閭d箞瀛╁瓙 item灝辮鏂規硶4X鍊嶏紝涓涓猧tem鐨勮漿鎹笉褰卞搷浠栫殑澶栬錛屾墍鏈夊拰澶栬鏈夊叧鐨勫嚱鏁幫紙渚嬪contains(),update()鍜屾墍鏈夌殑鏄犲皠 mapping鍑芥暟錛夊皢浼氬湪鏈湴鍧愭爣涓搷浣滐紝鏇存柟渚跨殑錛孮graphicsItem鎻愪緵鍑芥暟sceneTransform()錛屽皢浼氳繑鍥瀒tem鎵鏈夌殑杞?鎹㈢煩闃碉紝scenePos()灝嗕細榪斿洖item鍦ㄥ満鏅潗鏍囦腑鐨勪綅緗紝閲嶆柊璁劇疆item鐨勭煩闃碉紝璋冪敤鍑芥暟resetTransform()
 
涓 鑸殑杞崲鍥炰駭鐢熶竴涓笉鍚岀殑緇撴灉錛岃繖鍙栧喅浜庤漿鎹㈠簲鐢ㄧ殑欏哄簭錛屼緥濡傦紝濡傛灉浣犳斁澶т竴涓漿鎹紝鐒跺悗鍐嶆棆杞畠錛屽彲鑳藉拰浣犲厛鏃嬭漿瀹冨緱鍒扮殑緇撴灉涓嶄竴鏍鳳紝浣犺緗漿鎹㈠睘鎬х殑 欏哄簭騫朵笉褰卞搷杞崲鐨勭粨鏋滐紝錛堜篃灝辨槸浠嶆棫浼氭寜鐓т綘鐨勮漿鎹㈠懡浠ゅ幓杞崲錛屽彧鏄渶鍚庡緱鍒扮殑鍥懼艦涓嶄竴鏍瘋屽凡錛夛紝QgraphicsItem緇忓父搴旂敤涓涓悎閫傜殑欏哄簭濡?涓嬶細
 


緇樺浘painting
 
paint()鍑芥暟琚玅grapicsView綾昏皟鐢ㄦ潵緇樺埗item鐨?鍐呭錛宨tem榛樿鏄病鏈夎儗鏅垨鑰呭~鍏呴鑹茬殑銆傚湪鍑芥暟涓病鏈夎緇樺埗鐨勬墍鏈夊尯鍩熼兘灝嗕細鍙戜寒錛屽彲浠ヨ皟鐢╱pdate錛堬級鏉ラ噸緇榠tem錛屽彲浠ラ夋嫨浼犻掗渶瑕侀噸緇?鐨勭煩褰㈠尯鍩燂紙涓嶆槸蹇呴』鐨勶級銆傚彇鍐充簬item鍦╲iew涓槸鍚﹀彲瑙侊紝item鍙兘浼氫篃鍙兘涓嶄細閲嶇粯錛孮graphicsItem閲岄潰娌℃湁鍜?Qwidget::repaint()鍑芥暟絳変環鐨?br /> 
item閫氳繃view鏉ョ粯鍒訛紝浠庣埗items寮濮嬶紝鐒跺悗鏄嚜items錛屼互涓婂崌鐨勬爤鐨?欏哄簭錛屽彲浠ラ氳繃璋冪敤setZValue()璁劇疆item鐨勬爤欏哄簭錛岄氳繃zValue()鏉ユ祴璇曪紝鍏鋒湁浣巣-values鐨刬tem姣斿叿鏈夐珮z-value 鐨刬tem鍏堢粯鍒訛紝鏍堥『搴忓簲鐢ㄤ簬鍏勫紵items錛岀埗items鎬繪槸姣斿瓙items鏇存棭緇樺埗銆?br /> 
 
 
鎺掑簭sort
 
鎵鏈夌殑items閮芥寜鐓т竴涓凡緇忓0鏄庣殑錛岀ǔ瀹氱殑欏哄簭鏉ョ粯鍒訛紝榪欎釜欏哄簭涔熷喅瀹氫簡褰撲綘鍦ㄥ満鏅腑鐐瑰嚮榧犳爣鏃跺欙紝鍝釜items鏈鍏堟帴鍙楅紶鏍囩殑杈撳叆銆備竴鑸殑錛屼綘涓嶉渶瑕佹媴蹇冩帓搴忛棶棰橈紝鍥犱負鎵鏈夌殑items閮芥寜鐓т竴涓湪鍦烘櫙涓0鏄庣殑鑷劧鐨勯『搴?br /> 


鍦ㄤ竴涓爤涓紝瀛恑tem鍦ㄧ埗item鐨勪笂闈紝鍏勫紵item鎸夌収鎻掑叆鍦烘櫙鐨勯『搴忔潵鍏ユ爤錛屽鏋滀綘鍏堟坊鍔犱簡item A 錛岀劧鍚庢槸item B錛岀劧鍚庢槸item C 錛岃繖鏍鋒爤涓殑欏哄簭浠庝笅寰涓婂氨鏄疉,B,C
 
Drag and Drop Robot渚嬪瓙涓睍紺轟簡璇obot鐨勬爤欏哄簭錛岃函騫查『搴忔槸鏍筰tem錛堝叾浠栨墍鏈夌殑item閮芥槸韜共item鐨勫瓙item鎴栬呭悗浠tem錛夛紝鐒跺悗鏄ご item琚粯鍒訛紝鐢變簬瀹冩槸韜共item鐨勫瓙item鍒楄〃涓殑絎竴涓猧tem錛岀劧鍚庢槸宸﹁噦鑶涓婇潰鐨勯偅閮ㄥ垎item錛屼笅闈㈤偅涓噦鑶item鏄笂闈㈣噦鑶item 鐨勫瓙item錛屾墍浠ヤ細鍦ㄥ拰3鍙穒tem鍚岀瓑綰х殑鍏勫紵item緇樺埗瀹屽悗琚粯鍒訛紝鎺ョ潃灝辨槸鍙寵竟涓婇潰鐨勭殑鑷傝唨item錛屽氨鏄?鍙穒tem銆?br /> 
 銆傚彲浠ヨ皟鐢╯etZvalue()鏉ヨ緗竴涓猧tem鐨勭浉瀵逛害鍙︿竴涓悜涓婏紝鍚戜笅鎴栬呭厔寮熸爤欏哄簭銆傞粯璁ょ殑Z鍊兼槸0錛屽叿鏈夊悓鏍風殑Z鍊肩殑item浼氭寜鐓ф彃鍏ョ殑欏哄簭鏉ュ叆鏍堛?br /> 
銆傚彲浠ヨ皟鐢╯tackBefore()鏉ュ浠藉瀛恑tem鐨勫垪琛紝榪欏彲浠ョ洿鎺ユ洿姝tem鐨勯『搴忋?br /> 
銆傚鏋滄兂璁╁瀛恑tem鍦ㄧ埗item鐨勫悗闈紝涔熷氨鏄厛緇樺埗瀛╁瓙item錛岀劧鍚庡湪緇樺埗鐖秈tem錛屾庝箞鍔炲憿錛熷彲浠ヨ緗甀temStacksBehindParent灞炴х粰榪欎釜item錛屽埄鐢ㄥ嚱鏁皊etFlag();
 
涓や釜鍏勫紵item鐨勯『搴忎篃鍐沖畾浜嗕粬浠殑瀛恑tem 鍜屽悗浠tem鐨勯『搴忥紝濡傛灉涓涓埗item鐨勫湪涓や釜鐖秈tem鐨勫悗闈紝閭d箞浠栨墍鏈夌殑瀛╁瓙items閮藉湪鍙︿竴涓埗item鐨勫瀛恑tems鍚庨潰銆?br /> 
 
 
浜嬩歡Event
 
QgraphicsItem浠庡満鏅腑閫氳繃sceneEvent()鍑芥暟鏉ユ帴鍙椾簨浠訛紝榪欎釜鍑芥暟閫氳繃涓浜涙柟渚跨殑鎿嶄綔鍒嗘暎澶ч儴鍒嗕簨浠?br /> 
ContextMenuEvent()鍑芥暟鎺ュ彈涓婁笅鏂囪彍鍗曚簨浠?br /> 
FocusInEvent()鍜宖ocusOutEvent()鍑芥暟鎺ュ彈鐒︾偣榪涘嚭浜嬩歡
 
hoverEnterEvent(), hoverMoveEvent(), and hoverLeaveEvent() 鎺ュ彈榧犳爣鎮誕 縐誨姩鍜岀寮浜嬩歡
 
inputMethodEvent()鍑芥暟澶勭悊杈撳叆娉曚簨浠訛紝
 
keyPressEvent() and keyReleaseEvent()浜嬩歡澶勭悊閿洏鎸変笅鍜屾澗寮浜嬩歡
 
mousePressEvent(), mouseMoveEvent(), mouseReleaseEvent(), and mouseDoubleClickEvent()澶勭悊榧犳爣鎸変笅錛岀Щ鍔紝鏉懼紑錛屽弻鍑諱簨浠?br /> 
涔?鍙互涓轟竴浜沬tem榪囨護涓浜涗簨浠墮氳繃瀹夎榪囨護鍣紝榪欎釜鍜孮T涓鑸殑浜嬩歡榪囨護鍣ㄤ笉涓鏍鳳紝涓鑸殑榪囨護鍣ㄥ彧宸ヤ綔鍦≦object鍜屽畠鐨勫瓙綾伙紝閫氳繃璋冪敤 installSceneEventFilter()涓篿tem瀹夎浜嗚繃婊ゅ櫒鍚庯紝琚繃婊ょ殑浜嬩歡灝嗕細琚櫄鍑芥暟sceneEventFilter().鎹曟崏 鍒幫紝鍙互閫氳繃璋冪敤鍑芥暟removeSceneEventFilter().鏉ュ幓闄ゆ帀浜嬩歡榪囨護鍣?br /> 
 
 
Custom Data鏁版嵁
 
鏈?浜涙椂鍊欎負item娉ㄥ唽涓浜涙暟鍊煎緢鏈夌敤錛屽仛涓涓櫘閫氱殑item鎴栬呮爣鍑嗙殑item錛屽彲浠ヨ皟鐢╯etData()鏉ヤ負浠諱竴涓猧tem璁劇疆鍊鹼紝榪欎釜鍊間嬌鐢?key-value瀵癸紝錛坘ey鏄暣褰紝value鏄彉縐嶆暟鎹甉varient錛夋潵寰楀埌item鐨勬暟鎹紝閫氳繃璋冪敤data(),
 
 
 
 
 
 
 
 
 
 
 
1銆丵Variant QGraphicsItem::itemChange ( GraphicsItemChange change, const QVariant & value )   [virtual protected]
 
榪欎釜鍑芥暟琚玅GraphicsItem璋冪敤鐢ㄦ潵鏍囨槑items鐨勪竴浜涚姸鎬佹敼鍙樹簡錛岄氳繃閲嶈澆榪欎釜鍑芥暟錛屽彲浠ュ鑷繁瀹氫箟浜嬩歡鍝嶅簲錛屽湪涓浜涙儏鍐典笅錛屽彲浠ュ仛涓浜涜皟鏁淬?br /> 
鍙傛暟change鏄敼鍙樼殑閭d釜item鐨勬敼鍙樼姸鎬佸弬鏁幫紝value鏄竴涓柊鐨勬暟鎹紝浠栫殑綾誨瀷鍙栧喅浜巆hange錛?br /> 
 
 
change鏄疩GraphicsItem::GraphicsItemChange鐨勬灇涓懼彉閲?br /> 
enum      GraphicsItemChange { ItemEnabledChange, ItemEnabledHasChanged,

 
 
ItemMatrixChange, ItemPositionChange, ..., ItemScenePositionHasChanged }
 
渚嬪錛?br /> 
 QVariant Component::itemChange(GraphicsItemChange change, const QVariant &value)
 
 {
 
     if (change == ItemPositionChange && scene()) {
 
         // value is the new position.
 
         QPointF newPos = value.toPointF();
 
         QRectF rect = scene()->sceneRect();
 
         if (!rect.contains(newPos)) {
 
             // Keep the item inside the scene rect.
 
             newPos.setX(qMin(rect.right(), qMax(newPos.x(), rect.left())));
 
             newPos.setY(qMin(rect.bottom(), qMax(newPos.y(), rect.top())));
 
             return newPos;
 
         }
 
     }
 
     return QGraphicsItem::itemChange(change, value);
 
 }
 
榛樿鐨勫嚱鏁頒粈涔堥兘涓嶅仛錛屽彧榪斿洖value
 
娉?鎰忥細鍦ㄤ嬌鐢ㄨ繖涓嚱鏁版椂鍊欙紝鍦ㄥ嚱鏁板唴閮ㄨ皟鐢ㄥ嚱鏁版椂鍊欒灝忓績錛屽洜涓鴻繖鍙兘瀵艱嚧涓浜涙剰鎯充笉鍒扮殑緇撴灉錛屼緥濡傦細浣犱笉鑳藉啀榪欎釜鍑芥暟閲岄潰璋冪敤setPos()鍦?change鏄疘temPositionChange鏃跺欙紝鐢變簬setPos()鍑芥暟灝嗕細鍐嶆璋冪敤 itemChange(ItemPositionChange)錛屽姝ゅ氨涓鐩村驚鐜笅鍘諱簡銆?br /> 
2銆乿oid QGraphicsItem::setFlag ( GraphicsItemFlag flag, bool enabled = true )
 
void QGraphicsItem::setFlags ( GraphicsItemFlags flags )
 
鎶奻lags璁劇疆涓篿tem鐨勫睘鎬э紝濡傛灉item鑾峰緱浜嗗厜鏍囷紝浣嗘槸flags娌℃湁浣胯兘ItemsFocusable,榪欎釜item
 
 
 
灝嗕細涓㈠け鍏夋爣錛屽悓鏍風殑錛屽綋item琚夋嫨鍒幫紝浣嗘槸娌℃湁浣胯兘ItemsSelectable,榪欎釜item浼氳嚜鍔ㄧ殑澶卞幓
 
 
 
閫夋嫨銆?br /> 
榛樿鐨勶紝鎵鏈夌殑flags閮芥槸涓嶅彲鐢ㄧ殑銆傦紙QGraphicsWidget 涓轟簡鑾峰緱浣嶇疆鍙樺寲榛樿浣胯兘浜?br /> 
 
 
ItemSendsGeometryChanges錛?br /> 
鐩歌繎鐨勫嚱鏁?br /> 
GraphicsItemFlags QGraphicsItem::flags () const
 
榪斿洖item鐨勬墍鏈変嬌鑳界殑flags錛屼緥濡傦紝濡傛灉flags閲岄潰鍖呭惈浜咺temIsFocusable錛岃繖涓猧tem鍙互鎺ュ彈
 
 
 
杈撳叆鍏夋爣
 
3銆丵PainterPath QGraphicsItem::shape () const   [virtual]
 
浠PainterPath榪斿洖item鍦╨ocal鍧愭爣涓殑褰㈢姸錛岃繖涓艦鐘跺彲浠ョ敤鏉ュ仛寰堝浜嬫儏錛屽寘鎷鎾炰睛嫻嬶紝
 
 
 
鎵撳嚮嫻嬭瘯錛岃繕鏈夌敤鏉?QGraphicsScene::items() 鍑芥暟
 
榛樿鐨勫嚱鏁拌皟鐢╞oundingRect()榪斿洖涓涓畝鍗曠殑鐭╁艦褰㈢姸錛屼絾鏄瓙綾誨彲浠ラ噸杞借繖涓嚱鏁幫紝涓洪潪鐭╁艦
 
 
 
鐨刬tem榪斿洖涓涓洿鍔犵簿鍑嗙殑褰㈢姸錛屼緥濡備竴涓渾褰㈢殑item鍙互閫夋嫨榪斿洖涓涓き鍦嗗艦錛岀敤鏉ヨ幏寰楁洿濂界殑
 
 
 
紕版挒渚︽祴鏁堟灉銆備唬鐮侊細
 
QPainterPath RoundItem::shape() const
 
 {
 
     QPainterPath path;
 
     path.addEllipse(boundingRect());
 
     return path;
 
 }
 
褰㈢姸鐨勮疆寤撶嚎鍙互閫氳繃緇樺埗鏃跺欑殑pen鏉ュ彉鍖?br /> 
4銆丵RectF QGraphicsItem::boundingRect () const   [pure virtual]
 
榪欎釜綰櫄鍑芥暟鐢ㄧ煩褰㈠0鏄庝簡item鐨勮竟鐣岃疆寤擄紝鎵鏈夌殑緇樺埗閮藉繀欏婚檺瀹氬湪item鐨勭煩褰㈣竟妗嗗唴銆?br /> 
 
 
QGraphicsView浣跨敤榪欎釜鏂規硶鏉ュ喅瀹歩tem鏄惁闇瑕侀噸緇?br /> 
灝界item鐨勫艦鐘跺彲浠ユ槸浠繪剰鐨勶紝浣嗘槸杈規涓鐩撮兘鏄煩褰紝涓嶅獎鍝峣tems鐨勫彉鎹?br /> 
濡傛灉鎯蟲敼鍙榠tems鐨勮竟妗嗭紝搴旇棣栧厛璋冪敤prepareGeometryChange()錛岃繖灝嗛氱煡鍦烘櫙scene鍗沖皢鍙戠敓鐨勫彉鍖栵紝榪欐牱鍦烘櫙鍙互鍒鋒柊item鐨勪綅緗笅鏍囥傚惁鍒欙紝鍦烘櫙灝嗕笉浼氬療瑙夊埌item鐨勫彉鍖栵紝緇撴灉涔熸湭鐭ャ?br /> 
濡傛灉瑕侀噸緇榠tem鏃跺欙紝閲嶈澆榪欎釜鍑芥暟鏉ヨQGraphicsView鏉ュ喅瀹歩tem鐨勮竟鐣屽尯鍩燂紝
 
娉ㄦ剰錛氱敱浜庣粯鍒惰竟鐣屾椂鍊欑殑杈圭晫杞粨綰匡紝鍦ㄨ繖涓煩褰㈠尯鍩熷唴鍖呭惈鐢葷瑪pen瀹藉害鐨勪竴鍗婂緢閲嶈錛屼笉闇
 
 
 
瑕佽ˉ鍋跨敾鍥捐蛋鏍?nbsp; 渚嬪
 
 QRectF CircleItem::boundingRect() const
 
 {
 
     qreal penWidth = 1;
 
     return QRectF(-radius - penWidth / 2, -radius - penWidth / 2,
 
                   diameter + penWidth, diameter + penWidth);
 
 }
 
 
 
鍚屾牱鐨勪竴涓繑鍥瀒tem杞粨鐨勫嚱鏁?br /> 
QRegion QGraphicsItem::boundingRegion ( const QTransform & itemToDeviceTransform ) const
 
榪斿洖璇tem鐨勮疆寤撳尯鍩燂紝榪斿洖鐨勫尯鍩熺殑鍧愭爣緋葷粺渚濊禆浜庡弬鏁癷temToDeviceTransform錛屽鏋滀綘浼犻掍竴涓猀transform瀵硅薄浣滀負鍙傛暟錛岄偅涔堝嚱鏁板皢榪斿洖鏈湴鍧愭爣緋葷粺鍖哄煙
 
榪斿洖鐨勫尯鍩熸槸item鍐呭鍙鐨勪竴涓ぇ姒傜殑杞粨錛屽敖綆¤綆楄搗鏉ュ緢嫻垂絀洪棿鍜屾椂闂達紝浣嗘槸姣攂oundingRect錛堬級鏇寸簿鍑嗭紝鑰屼笖褰撻噸緇樻椂鍊欙紝瀹冭繕鑳介伩鍏嶄笉蹇呰鐨勯噸緇樸傚鍍忕嚎鎴栬呯畝鍗曠殑澶氳竟褰㈡潵璇撮潪甯告湁鏁堛?br /> 
涔熷彲浠ヨ皟鑺傝疆寤撳尯鍩熺殑綺掑害閫氳繃璋冪敤setBoundingRegionGranularity()錛岄粯璁ょ殑綺掑害鏄?錛岃繖鏃跺檌tem鐨勫尯鍩熷拰杞粨鐭╁艦涓鏍風殑銆?br /> 
itemToDeviceTransform鏄粠item鍧愭爣緋葷粺鍒拌澶囧潗鏍囩郴緇熺殑涓涓漿鎹€傚鏋滀綘鎯寵榪欎釜鍑芥暟榪斿洖涓涓満鏅潗鏍囧尯鍩燂紝鍙互鐢ㄥ嚱鏁皊ceneTransform()浣滀負鍙傛暟銆?br /> 
 
 
鐩稿叧鍑芥暟qreal QGraphicsItem::boundingRegionGranularity () const
 
榪斿洖item鐨勮疆寤撳尯鍩熺矑搴?br /> 
 
 
5銆乿oid QGraphicsItem::setPos ( const QPointF & pos )
 
鍦ㄧ埗瀵硅薄鍧愭爣緋葷粺涓緗甶tem鐨勪綅緗負pos錛屽娌℃湁鐖跺璞$殑items,pos浣跨敤鐨勫満鏅殑鍧愭爣緋葷粺錛?br /> 
6銆丵PointF QGraphicsItem::scenePos () const
 
榪斿洖璇tem鍦ㄥ満鏅腑鐨勫潗鏍囩偣錛岀瓑浠蜂簬璋冪敤鍑芥暟mapToScene(0, 0).
 
7銆丵PointF QGraphicsItem::pos () const
 
榪斿洖item鍦ㄧ埗鍧愭爣緋諱腑鐨勪綅緗紝濡傛灉娌℃湁鐖跺潗鏍囩郴錛岄偅涔堣繑鍥炲湪鍦烘櫙鍧愭爣緋諱腑鐨勪綅緗紝姝ゆ椂絳変環浜庤皟鐢╯cenePos ()錛屽彲浠ョ洿鎺ヨ皟鐢╯cenePos ()鏉ヨ幏鍙栬item鍦ㄥ満鏅腑鐨勪綅緗紝浠庤屽拷鐣ュ叾鐖跺璞°?br /> 
 
 
8銆乪num QGraphicsItem::CacheMode
璁劇疆緇樺浘鐨勭紦鍐叉ā寮忥紝榛樿鏄病鏈夌紦鍐詫紝濡傛灉浣跨敤緙撳啿鍖虹殑璇濓紝鍦ㄩ噸緇樻椂鍊欙紝闈炲父蹇?br /> 
璁劇疆緙撳啿妯″紡浣跨敤鍑芥暟QGraphicsItem::setCacheMode().
 
 
 
9銆乥ool QGraphicsItem::acceptDrops () const
 
濡傛灉item鑳藉鎺ュ彈鎷栨嫿浜嬩歡錛屽氨榪斿洖鐪燂紝鍚﹀垯榪斿洖鍋囷紝榛樿鐨勪笉鑳芥帴鍙楁嫋鎷戒簨浠?br /> 
 鍚岀被鍑芥暟
 
void QGraphicsItem::setAcceptDrops ( bool on )
 
濡傛灉On鏄湡鐨勮瘽錛屽氨璁劇疆item鍙互鎺ュ彈鎷栨嫿浜嬩歡錛屽惁鍒欏鎷栨嫿浜嬩歡鏄忔槑鐨勶紝涔熷氨鏄笉鑳藉搷搴旀嫋鎷斤紝榛樿鏄笉鍝嶅簲鐨勩?br /> 
10銆乥ool QGraphicsItem::acceptHoverEvents () const
 
濡傛灉鍙互鎺ュ彈榧犳爣鎮誕鍦ㄤ粬涓婇潰鐨勪簨浠訛紝灝辮繑鍥炵湡錛屽惁鍒欒繑鍥炲亣銆傞粯璁や篃鏄笉鎺ュ彈璇ヤ簨浠剁殑銆?br /> 
鍚屾牱鐨勭敤浜庤緗槸鍚︽帴鍙楄浜嬩歡鐨勫嚱鏁?br /> 
void QGraphicsItem::setAcceptHoverEvents ( bool enabled )
 
濡傛灉enabled涓虹湡錛屽氨鎺ュ彈錛屽惁鍒欏氨涓嶆帴鍙椼?br /> 
11銆丵t::MouseButtons QGraphicsItem::acceptedMouseButtons () const
 
榪斿洖榪欎釜item鎵鑳芥帴鍙楃殑榧犳爣浜嬩歡鐨勯紶鏍囬敭錛岄粯璁ょ殑鏄墍鏈夌殑榧犳爣閿簨浠墮兘鑳芥帴鍙椼?br /> 
鍚?鏍風殑浣跨敤鍑芥暟void QGraphicsItem:: setAcceptedMouseButtons ( Qt::MouseButtons buttons )鏉ヨ緗帴鍙楃殑榧犳爣閿簨浠訛紝濡傛灉鎯沖拷鐣ユ煇涓紶鏍囬敭浜嬩歡錛屽彲浠ョ敤setAcceptedMouseButtons錛?錛?br /> 
12銆乿oid QGraphicsItem::advance ( int phase )   [virtual]
 
榪?涓櫄鍑芥暟琚玅GraphicsScene::advance()璋冪敤涓ゆ錛岀涓嬈¤皟鐢紝鎵鏈夌殑items閮借皟鐢紝浣跨敤鍙傛暟phase=0錛岃〃紺哄満鏅腑鎵鏈?鐨刬tems閮藉皢advance錛堝墠榪涳級錛岀劧鍚庢墍鏈夌殑items閮藉皢璋冪敤錛屼嬌鐢ㄥ弬鏁皃hase=1錛岄噸鍐欒繖涓嚱鏁幫紝鍙互鏉ュ埛鏂頒綘鐨刬tem錛屽鏋滀綘闇瑕佺畝 鍗曠殑鍦烘櫙鎺у埗鍔ㄧ敾銆?br /> 
榛樿鐨勮鍑芥暟浠涔堜簨閮戒笉鍋?br /> 
濡傛灉鎯沖啓鍔ㄧ敾錛屽彲浠ヤ嬌鐢ㄤ袱縐嶆柟娉曪紝涓涓嬌鐢?QGraphicsItemAnimation,錛屾垨澶氶噸緇ф壙Qobject鍜孮graphicsItem錛岀劧鍚庝嬌鐢?QObject::startTimer() 鍜?QObject::timerEvent().鏉ヤ嬌item鎴愬姩鐢匯?br /> 
 
 
13銆丵List<QGraphicsItem *> QGraphicsItem::childItems () const
 
榪斿洖瀛╁瓙item鐨勪竴涓摼琛紝榪欎簺items鎸夌収鏍堥『搴忔帓鍒楋紝鑰冭檻浜唅tem鐨勬彃鍏ラ『搴忓拰Z-values
 
14銆丵RectF QGraphicsItem::childrenBoundingRect () const
 
榪斿洖榪欎釜item鐨勬墍鏈夊瓙瀛檌tems鐨勬湰鍦板潗鏍囩郴緇熻疆寤撶煩褰€傝繖涓煩褰㈠寘鎷簡榪欎釜item鎵鏈夌殑瀛愬瓩item錛屽鏋滆繖涓猧tem涓嶅惈鏈夊瓙瀛檌tem錛岃繖涓嚱鏁板皢榪斿洖涓涓┖鐨勭煩褰€?br /> 
榪斿洖鐨勭煩褰笉鍖呮嫭item鏈韓鐨勮疆寤撶煩褰紝鍙繑鍥炲瓙瀛檌tem鐨勭煩褰㈣疆寤擄紝濡傛灉浣犳兂鍖呭惈item鏈韓鐨勭煩褰㈠尯鍩燂紝鍙互浣跨敤QRectF::operator|()鎶奲oundingRect()鍜宧ildrenBoundingRect()鎴栬搗鏉ャ?br /> 
榪欎釜鍑芥暟寰堝鏉傦紝瀹冨喅瀹氫簡榪斿洖杞粨鐨勫ぇ灝忛氳繃閲嶅鎵鏈夊瓙瀛檌tem
 
 
 
15銆乿oid QGraphicsItem::clearFocus ()
 
鍘婚櫎item鐨勫厜鏍囷紝濡傛灉鍘熸潵鏈夊厜鏍囩劍鐐癸紝褰撶劍鐐瑰け鍘繪椂鍊欙紝浜嬩歡focus out event浼氬彂閫佺粰榪欎釜item錛屾彁紺轟粬灝嗕細澶卞幓鐒︾偣銆?br /> 
Item鍙湁璁劇疆浜咺temsFocusable灞炴э紝鎴栬厀idget璁劇疆浜嗗悎閫傜殑鐒︾偣絳栫暐錛屾墠鑳芥帴鍙楅敭鐩樼劍鐐廣?br /> 
 
 
 
 
16銆?bool QGraphicsItem::collidesWithItem ( const QGraphicsItem * other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape ) const   [virtual]
 
濡?鏋滆繖涓猧tem鍜屽彟涓涓猧tem紕版挒灝辮繑鍥炵湡錛宮ode鏄簲鐢ㄤ簬鍏朵粬item鐨勶紝榛樿鏄疩t::IntersectsItemShape錛屽鏋滃叾浠栫殑 item鍜岃繖涓猧tem鐩鎬簰褰卞搷鎴栬呭寘鍚紝琚寘鍚簬榪欎釜item鐨勫艦鐘訛紙璇﹁Qt::ItemSelectionMode錛夈?br /> 
榛樿鐨勫嚱 鏁版槸灝卞熀浜庡褰㈢浉浜掑獎鍝嶏紝瀹冭皟鐢ㄤ袱涓猧tem鐨剆hape()鍑芥暟錛岃繖灝嗕細鑺辮垂寰堝ぇ鏃墮棿錛屼綘鍙互鍦≦graphicsItem瀛愮被涓噸鍐欒繖涓嚱鏁幫紝鎻愪緵涓 涓畝鍗曠殑綆楁硶銆傝繖鏍蜂綘鍙互浣跨敤鑷繁item鐨勪竴浜涘弬鏁幫紝榪欐牱鍙互鎻愰珮紕版挒渚︽祴鐨勬晥鏋溿備緥濡傦紝涓や釜瀹屽叏娌℃湁杞崲鐨勫渾item鐨勭鎾炲彲浠ラ氳繃瀵規瘮浠栦滑鐨勫渾蹇冧綅 緗拰鍗婂緞
 
 
 
17銆乥ool QGraphicsItem::collidesWithPath ( const QPainterPath & path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape ) const   [virtual]
 
濡傛灉item鎸夌収path紕版挒灝辮繑鍥炵湡錛?br /> 
 
 
18銆丵List<QGraphicsItem *> QGraphicsItem::collidingItems ( Qt::ItemSelectionMode mode = Qt::IntersectsItemShape ) const
 
榪斿洖鍜岃繖涓猧tem鐩鎬簰紕版挒鐨刬tem鐨勯摼琛?br /> 
紕版挒渚︽祴妯″紡鍙栧喅浜巑ode,
 
 
 
19\ QGraphicsItem * QGraphicsItem::commonAncestorItem ( const QGraphicsItem * other ) const
 
榪斿洖item鏈榪戠殑紲栧厛item錛屽鏋渙ther涓?錛屾垨鑰呮病鏈夌鍏坕tem錛屽氨榪斿洖0
 
 
 
20銆乥ool QGraphicsItem::contains ( const QPointF & point ) const   [virtual]
 
濡傛灉item鍖呭惈浜嗙偣point灝辮繑鍥濼RUE錛屽惁鍒欒繑鍥濬ALSE錛屾渶甯哥敤鐨勬槸鍦≦graphicsView涓皟鐢紝鏉ュ垽鏂繖涓猧tem鏄惁鍦ㄥ厜鏍囦笅闈紝濡傛灉瑕侀噸鍐欒繖涓嚱鏁幫紝閭e氨灝藉彲鑳界殑綆鍗曘傞粯璁ょ殑榪欎釜鍑芥暟璋冪敤鐨剆hape()鍑芥暟
 
 
 
21銆乿oid QGraphicsItem::contextMenuEvent ( QGraphicsSceneContextMenuEvent * event )   [virtual protected]
 
鍙抽敭鑿滃崟浜嬩歡錛屽彲浠ュ湪瀛愮被涓噸鍐欒繖涓嚱鏁幫紝event閲岄潰鍖呭惈浜嗕簨浠惰鍏蜂綋澶勭悊鐨勬暟鎹?br /> 
濡傛灉蹇界暐榪欎釜浜嬩歡錛岃皟鐢ㄥ嚱鏁癚Event::ignore()錛屼簨浠秂vent灝嗕細琚紶鎾埌浠諱綍鍦ㄨitem涔嬩笅鐨刬tems,濡傛灉娌℃湁item鍝嶅簲榪欎釜浜嬩歡錛岄偅涔堝満鏅氨蹇界暐榪欎釜浜嬩歡錛屼紶閫掔粰view瑙嗗浘
 
閫氬父鏄搷搴旇浜嬩歡鎵撳紑涓涓彸閿彍鍗曪紝渚嬪
 
void CustomItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)  {      QMenu menu;      QAction *removeAction = menu.addAction("Remove");      QAction *markAction = menu.addAction("Mark");      QAction *selectedAction = menu.exec(event->screenPos());      // ...  }
 
 
榛樿鏄拷鐣ヨ浜嬩歡銆?br /> 
 
 
 
 
22銆丵Variant QGraphicsItem::data ( int key ) const
 
浠variant鐨勬牸寮忚繑鍥瀒tem涓殑鏁版嵁錛屽綋鍓嶇殑item鏁版嵁瀵瑰瓨鍌ㄤ換鎰忔暟鎹緢鏈夌敤錛屼緥濡?br /> 
static const int ObjectName = 0;    QGraphicsItem *item = scene.itemAt(100, 50);  if (item->data(ObjectName).toString().isEmpty()) {      if (qgraphicsitem_cast<ButtonItem *>(item))          item->setData(ObjectName, "Button");  }
void QGraphicsItem::setData ( int key, const QVariant & value )
 
鐢ㄦ潵璁劇疆item鐨勬暟鎹?br /> 
23銆丵Transform QGraphicsItem::deviceTransform ( const QTransform & viewportTransform ) const
 
榪斿洖item璁懼鐨勮漿鎹㈢煩闃碉紝浣跨敤viewportTransform鏉ヤ粠鍦烘櫙鍒拌澶囧獎灝勫潗鏍囷紝榪欎釜鐭╅樀鍙互鐢ㄦ潵浠庤繖涓猧tem鏈湴鍧愭爣鍒拌鍥懼彛鍧愭爣緋葷粺鏄犲皠鍧愭爣鎴栬呭嚑浣曞浘褰紝濡傛灉瑕佹槧灝勮鍥懼彛鍧愭爣鍒版湰鍦板潗鏍囷紝棣栧厛搴旇杞崲榪斿洖鐨勮繖涓煩闃點?br /> 
QGraphicsRectItem rect;  rect.setPos(100, 100);    rect.deviceTransform(view->viewportTransform()).map(QPointF(0, 0));  // returns the item's (0, 0) point in view's viewport coordinates    rect.deviceTransform(view->viewportTransform()).inverted().map(QPointF(100, 100));  // returns view's viewport's (100, 100) coordinate in item coordinates
榪欎釜鍑芥暟鏄粨鍚堜簡鍒板満鏅殑杞崲鍜屽埌瑙嗗浘鐨勮漿鎹紝璁懼杞崲鍙互鐢ㄦ潵瀵歸偅浜涙病鏈夎繘琛岃漿鎹㈠潗鏍囩殑item璁$畻紕版挒銆?br /> 
24銆佹嫋鎷界被鍑芥暟
 
void QGraphicsItem::dragEnterEvent ( QGraphicsSceneDragDropEvent * event )   [virtual protected]
 
void QGraphicsItem::dragLeaveEvent ( QGraphicsSceneDragDropEvent * event )   [virtual protected]
 
void QGraphicsItem::dragMoveEvent ( QGraphicsSceneDragDropEvent * event )   [virtual protected]
 
void QGraphicsItem::dropEvent ( QGraphicsSceneDragDropEvent * event )   [virtual protected]
 
 
 
25銆乹real QGraphicsItem::effectiveOpacity () const
 
榪斿洖item鐨勬湁鏁堥忔槑搴︼紝榪欎釜鏁板煎湪0.0~~1.0涔嬮棿
 
鍚屾牱鐨勫彲浠ョ敤鍑芥暟void QGraphicsItem::setOpacity ( qreal opacity )鏉ヨ緗忔槑搴︼紝
 
榛樿鐨勫瓙item緇ф壙鐖秈tem鐨勯忔槑搴?br /> 
鍚屾牱鍙互璁劇疆item鐨勫睘鎬GraphicsItem::ItemIgnoresParentOpacity 鏉ュ拷鐣ョ埗item鐨勯忔槑搴﹀鑷繁鐨勫獎鍝?br /> 
璁劇疆瀛恑tem鐨勫睘鎬GraphicsItem::ItemIgnoresTransformations鏉ュ拷鐣ヨ鍥捐漿鎹紙鏀懼ぇ錛岀緝灝忥級絳夋搷浣滃鑷繁鐨勫獎鍝嶏紝鍦ㄦ樉紺烘枃鏈椂鍊欏緢鏈夌敤銆?br /> 
 
 
26銆乿oid QGraphicsItem::hoverEnterEvent ( QGraphicsSceneHoverEvent * event )   [virtual protected]
 
void QGraphicsItem::hoverLeaveEvent ( QGraphicsSceneHoverEvent * event )   [virtual protected]
 
void QGraphicsItem::hoverMoveEvent ( QGraphicsSceneHoverEvent * event )   [virtual protected]
 
榧犳爣鎮誕浜嬩歡
 
 
 
27銆乿oid QGraphicsItem::mouseDoubleClickEvent ( QGraphicsSceneMouseEvent * event )   [virtual protected]
 
void QGraphicsItem::mouseMoveEvent ( QGraphicsSceneMouseEvent * event )   [virtual protected]
 
void QGraphicsItem::mousePressEvent ( QGraphicsSceneMouseEvent * event )   [virtual protected]
 
void QGraphicsItem::mouseReleaseEvent ( QGraphicsSceneMouseEvent * event )   [virtual protected]
 
榧犳爣鍙屽嚮錛岀Щ鍔紝閲婃斁鐨勪簨浠?br /> 
 
 
 
 
 
 
28銆丵PointF QGraphicsItem::mapFromItem ( const QGraphicsItem * item, const QPointF & point ) const
 
QPolygonF QGraphicsItem::mapFromItem ( const QGraphicsItem * item, const QRectF & rect ) const
 
QPainterPath QGraphicsItem::mapFromItem ( const QGraphicsItem * item, const QPainterPath & path ) const
 
QPolygonF QGraphicsItem::mapFromItem ( const QGraphicsItem * item, qreal x, qreal y, qreal w, qreal h ) const
 
QPointF QGraphicsItem::mapFromItem ( const QGraphicsItem * item, qreal x, qreal y ) const
 
QPointF QGraphicsItem::mapFromParent ( const QPointF & point ) const
 
QPolygonF QGraphicsItem::mapFromParent ( const QRectF & rect ) const
 
QPolygonF QGraphicsItem::mapFromParent ( const QPolygonF & polygon ) const
 
QPainterPath QGraphicsItem::mapFromParent ( const QPainterPath & path ) const
 
QPolygonF QGraphicsItem::mapFromParent ( qreal x, qreal y, qreal w, qreal h ) const
 
QPointF QGraphicsItem::mapFromParent ( qreal x, qreal y ) const
 
QPointF QGraphicsItem::mapFromScene ( const QPointF & point ) const
 
QPolygonF QGraphicsItem::mapFromScene ( const QRectF & rect ) const
 
QPolygonF QGraphicsItem::mapFromScene ( const QPolygonF & polygon ) const
 
QPainterPath QGraphicsItem::mapFromScene ( const QPainterPath & path ) const
 
QPolygonF QGraphicsItem::mapFromScene ( qreal x, qreal y, qreal w, qreal h ) const
 
QPointF QGraphicsItem::mapFromScene ( qreal x, qreal y ) const
 
QRectF QGraphicsItem::mapRectFromItem ( const QGraphicsItem * item, const QRectF & rect ) const
 
QRectF QGraphicsItem::mapRectFromItem ( const QGraphicsItem * item, qreal x, qreal y, qreal w, qreal h ) const
 
銆傘傘傘傘傘傘傘傘傘傚お澶氫簡
 
杞崲鐭╅樀鍑芥暟
 
 
 
 
 
29銆乿oid QGraphicsItem::moveBy ( qreal dx, qreal dy )
 
鍚憍,y鏂瑰悜涓婄Щ鍔╠x,dy鐨勮窛紱伙紝絳変環浜庤皟鐢╯etPos(pos()+QpointF(dx,dy))
 
 
 
 
 
30\鏈閲嶈鐨勪竴涓嚱鏁?br /> 
void QGraphicsItem::paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 )   [pure virtual]
 
榪欎釜鍑芥暟閫氬父琚玽iew璋冪敤錛岀劧鍚庡啀鏈湴鍧愭爣緋葷粺涓粯鍒秈tem鐨勫唴瀹?br /> 
 
 
31銆乹real QGraphicsItem::rotation () const
 
榪斿洖item鐨勬棆杞害錛?br /> 
璁劇疆鏃嬭漿搴﹀嚱鏁頒嬌鐢╯etRotation(),
 
 
 
32銆乹real QGraphicsItem::scale () const
 
榪斿洖緙╂斁緋繪暟
 
璁劇疆緙╂斁浣跨敤setScale()
 
 
 
33銆乥ool QGraphicsItem::sceneEvent ( QEvent * event )   [virtual protected]
 
鎴幏浜嬩歡錛屽湪浜嬩歡娌℃湁鍒嗗彂緇欏悇涓叿浣撶殑浜嬩歡澶勭悊鍑芥暟涔嬪墠銆?br /> 
鐩稿綋浜巄ool QObject::event ( QEvent * e )   [virtual]
 
 
 
34銆乿oid QGraphicsItem::scroll ( qreal dx, qreal dy, const QRectF & rect = QRectF() )
 
婊氬姩item
 
 
 
35銆佸湪浣縤tem鑳藉搷搴斾竴浜涗簨浠朵箣鍓嶏紝闇瑕佸厛浣胯兘榪欎釜鍔熻兘錛屼緥濡?br /> 
void QGraphicsItem::setAcceptDrops ( bool on ) 

濡傛灉on涓虹湡錛岄偅涔堝氨浣胯兘鎷栨嫿錛屽惁鍒欏皢浼氬拷鐣ユ嫋鎷戒簨浠躲傞粯璁ゆ槸涓嶆帴鍙楃殑
 
void QGraphicsItem::setAcceptHoverEvents ( bool enabled )
 
濡傛灉on涓虹湡錛屼嬌鑳介紶鏍囨偓嫻簨浠躲傞粯璁や笉鎺ュ彈璇ヤ簨浠躲?br /> 
void QGraphicsItem::setAcceptTouchEvents ( bool enabled )
 
鍦ㄤ竴浜涙敮鎸佽Е鎽哥殑璁懼涓婏紝榪欎釜鍑芥暟灝嗕嬌鑳借Е鎽鎬簨浠躲?br /> 
 
 
36銆乿oid QGraphicsItem::setEnabled ( bool enabled )
 
浣胯item鏈夋晥錛屽鏋渆nabled涓哄亣錛屽垯璇tem涓嶈兘鐢ㄤ簡
 
 
 
37銆乿oid QGraphicsItem::setGraphicsEffect ( QGraphicsEffect * effect )銆?br /> 
璁劇疆item鐨勬晥鏋滐紝鍙互鐢ㄦā緋婃晥鏋滐紝鍗拌薄鏁堟灉錛岀粰瀹氶鑹茬粯鍒舵晥鏋滐紝閫忔槑鏁堟灉絳?br /> 
璇︾粏鐨勫彲浠ュ弬瑙丵graphicsEffect綾?br /> 
 
 
38銆乧onst int QGraphicsItem::Type
 
榪斿洖璇tem鐨勭被鍨嬪鹼紝榪欎釜鍊兼槸鑷繁閫氳繃瀹氫箟Type鐨勫鹼紝鐒跺悗浣跨敤type()铏氬嚱鏁版潵榪斿洖鐨勶紝鐪嬩緥瀛?br /> 
class QGraphicsPathItem : public QAbstractGraphicsShapeItem  {   public:    enum { Type = 2 };      int type() const { return Type; }    ...  };
 
 
39銆乀 qgraphicsitem_cast ( QGraphicsItem * item )
 
濡傛灉item鏄疶綾誨瀷鐨勶紝鎶奿tem杞崲鎴怲綾誨瀷鐨刬tem錛屽鏋滃け璐ワ紝鍒欒繑鍥?
 
濡傛灉鎯寵浠栨紜殑宸ヤ綔錛岄渶瑕侀噸鏂板疄鐜板嚱鏁皌ype錛堬級鏉ヨ繘琛屽垽鏂?/p>

綾崇背 2013-05-24 11:08 鍙戣〃璇勮
]]>
QT Plugin妗嗘灦緇撴瀯 http://m.shnenglu.com/zhonghua/archive/2013/02/22/198000.html綾崇背綾崇背Fri, 22 Feb 2013 07:10:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/02/22/198000.htmlhttp://m.shnenglu.com/zhonghua/comments/198000.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/02/22/198000.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/198000.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/198000.html

涓錛?/span>qt plugin 浠嬬粛

      Qt Plugin鍜屽叾浠栫被鍨嬬殑鎻掍歡涓鏍鳳紝鏄竴縐嶈綆楁満搴旂敤紼嬪簭錛屽畠鍜屼富搴旂敤紼嬪簭(host application)浜掔浉浜や簰錛屼互鎻愪緵鐗瑰畾鐨勫姛鑳姐傚簲鐢ㄧ▼搴忔敮鎸?/span>Plugin鏈夎澶氬師鍥狅紝涓浜涗富瑕佸師鍥犲寘鎷細浣垮緱絎笁鏂瑰紑鍙戣呮湁鑳藉姏鎵╁睍搴旂敤紼嬪簭錛屼互鎻愪緵鏃犳硶鍏堟湡棰勬枡鐨勭壒鑹詫紱鍑忓皬搴旂敤紼嬪簭鐨勫ぇ灝忥紱鐢變簬杞歡鐗堟潈涔嬮棿鐨勪笉鍏煎鎬у皢婧愪唬鐮佸拰搴旂敤紼嬪簭鍒嗕韓銆?/span>Qt Plugin 鍒嗗姩鎬佹彃浠跺拰闈欐佹彃浠朵袱縐嶃?/span>

浜岋細qt plugin 鍒涘緩鍜屼嬌鐢ㄦ柟娉?/span>

Qt鏈変袱縐嶄笌鎻掍歡鏈夊叧鐨?/span>API銆備竴縐嶇敤鏉ユ墿灞?/span>Qt鏈韓鐨勫姛鑳斤紝濡傝嚜瀹氫箟鏁版嵁搴撻┍鍔紝鍥懼儚鏍煎紡錛屾枃鏈紪瑙g爜錛岃嚜瀹氫箟鍒嗘牸錛岀瓑絳夛紝縐頒負Higher-Level API銆傚彟涓縐嶇敤浜庡簲鐢ㄧ▼搴忕殑鍔熻兘鎵╁睍錛岀О涓?/span>Lower-Level API銆傚墠涓縐嶆槸寤虹珛鍦ㄥ悗涓縐嶇殑鍩虹涔嬩笂鐨勩傝繖閲岃璁虹殑鏄悗涓縐嶏紝鍗崇敤鏉ユ墿灞曞簲鐢ㄧ▼搴忕殑Lower-level API銆?/span>

璁╁簲鐢ㄧ▼搴忔敮鎸佹彃浠舵墿灞曠殑姝ラ錛?/span>

 1. 瀹氫箟涓涓帴鍙i泦(鍙湁綰櫄鍑芥暟鐨勭被)錛岀敤鏉ヤ笌鎻掍歡浜ゆ祦銆?/span>

 2. 鐢ㄥ畯Q_DECLARE_INTERFACE()灝嗚鎺ュ彛鍛婅瘔Qt鍏冨璞$郴緇熴?/span>

 Q_DECLARE_INTERFACE(BrushInterface,"com.trolltech.PlugAndPaint.BrushInterface/1.0")

 3. 搴旂敤紼嬪簭涓敤QPluginLoader鏉ヨ杞芥彃浠躲?/span>

 4. 鐢ㄥ畯qobject_cast()鏉ョ‘瀹氫竴涓彃浠舵槸鍚﹀疄鐜頒簡鎺ュ彛銆?/span>

 QObject *obj = new QTimer; 

 QTimer *timer = qobject_cast<QTimer *>(obj);

鍐欎竴涓彃浠剁殑姝ラ錛?/span>

 1. 澹版槑鎻掍歡綾伙紝璇ョ被浠?/span>QObject鍜岃鎻掍歡甯屾湜瀹炵幇鐨勬帴鍙g戶鎵胯屾潵銆?/span>

 2. 鐢ㄥ畯Q_INTERFACES()灝嗚鎺ュ彛鍛婅瘔Qt鍏冨璞$郴緇熴?/span>

  class BasicToolsPlugin : public QObject,

                            public BrushInterface,

                            public ShapeInterface,

                            public FilterInterface

  {

       Q_OBJECT

       Q_INTERFACES(BrushInterface ShapeInterface FilterInterface)

  public:

       ...

   };

 3. 鐢ㄥ畯Q_EXPORT_PLUGIN2()瀵煎嚭鎻掍歡銆?/span>

  Q_EXPORT_PLUGIN2 ( PluginName, ClassName )

 4. 鐢ㄩ傚綋鐨?/span>.pro鏂囦歡鏋勫緩鎻掍歡銆?/span>

涓嬮潰鐨勪唬鐮佸0鏄庝簡涓涓帴鍙g被錛?/span>

 

class FilterInterface

 {

 public:

        virtual ~FilterInterface() {}

        virtual QStringList filters() const = 0;

        virtual QImage filterImage(const QString &filter, const QImage &image, QWidget* parent)=0;

  };

Q_DECLARE_INTERFACE(FilterInterface, "com.trolltech.PlugAndPaint.FilterInterface/1.0")

榪欓噷鏄疄鐜拌鎺ュ彛鐨勬彃浠剁被鐨勫畾涔夛細

 

 #include <QObject>

 #include <QStringList>

 #include <QImage>

 #include <plugandpaint/interfaces.h>

 class ExtraFiltersPlugin : public QObject, public FilterInterface

 {

 Q_OBJECT

 Q_INTERFACES(FilterInterface)

 public:

     QStringList filters() const;

     QImage filterImage(const QString &filter, const QImage &image,

     QWidget *parent);

 };

鏍規嵁鎻掍歡鐨勭被鍨嬩笉鍚岋紝pro鏂囦歡涓厤緗笂鏈変笉鍚屻備笅闈㈡槸pro鏂囦歡鍒嗘瀽錛?/span>

TEMPLATE      = lib                                  // 澹版槑涓?/span>lib錛屽姩鎬佸拰闈欐佹彃浠朵竴鏍楓?/span>

CONFIG       += plugin static                // 澹版槑涓?/span>plugin錛屽甫static琛ㄩ潰涓洪潤鎬侊紝鍚﹀垯涓哄姩鎬併?/span>

INCLUDEPATH += ../..

HEADERS       = basictoolsplugin.h

SOURCES       = basictoolsplugin.cpp

TARGET        = $$qtLibraryTarget(pnp_basictools)           // 鎸囨槑鎻掍歡鐨勫悕縐?/span>

DESTDIR       = ../../plugandpaint/plugins

鍔犺澆鎻掍歡鐨勪富搴旂敤紼嬪簭榛樿鍦ㄥ綋鍓嶇洰褰曚笅鐨?/span>plugins鏂囦歡澶逛腑瀵繪壘鍙敤鎻掍歡錛屽鏋滄槸鍔ㄦ佹彃浠訛紝鍒欑洿鎺ユ斁鍦?/span>plugins鏂囦歡澶逛腑渚垮彲錛屽鏋滄槸闈欐侊紝鍒欓渶瑕佸湪涓誨簲鐢ㄧ▼搴忕殑main鍑芥暟鐨勫紑濮嬬殑鍦版柟鐢ㄥ畯錛?/span>Q_IMPORT_PLUGIN(pluginname(鍜宲ro鏂囦歡涓0鏄庣殑涓鑷?)澹版槑闇瑕佸姞杞界殑鎻掍歡騫跺湪宸ョ▼閰嶇疆涓寚鏄庢彃浠剁殑lib浣嶇疆銆?/span>

涓夛細鍩轟簬qt plugin 鎶鏈殑妗嗘灦緇撴瀯璁炬兂

1.      鎰挎櫙

鐢變簬鎴戜滑鐩墠緋葷粺鍔熻兘澶氾紝妯″潡澶氾紝緙轟箯緋葷粺鐨勬暣浣撴с傛垜浠兂鍊熷姪Qt Plugin鎶鏈紝鎶婂悇涓嫭绔嬬殑鍔熻兘妯″潡瀹炵幇涓轟竴涓釜鎻掍歡錛岀粺涓鍦ㄤ富浣撴鏋朵腑錛屽茍鑳芥牴鎹笉鍚屽湴鏂圭殑鐢ㄦ埛鐨勪笉鍚岄渶姹傦紝鍦ㄤ富妗嗘灦涓姞杞戒笉鍚岀殑鍔熻兘妯″潡錛屼互瀹炵幇鏁翠釜緋葷粺鐨勫姛鑳介泦涓紝浣撶幇鍑虹郴緇熺殑鏁翠綋鎬с?/span>

2.      plugin 鎺ュ彛

閫氳繃鎶鏈獙璇佸緱鍑猴紝鐩墠鎴戜滑閲囩敤鍔ㄦ佹彃浠訛紝鍚勪釜鍔熻兘鐨勬彃浠跺疄鐜板畾涔夌殑緇熶竴鎺ュ彛錛屽叿浣撳姛鑳芥斁鍦ㄦ彃浠剁晫闈腑瀹炵幇錛屾閮ㄥ垎灝卞儚寮鍙戠嫭绔嬬殑搴旂敤紼嬪簭錛屽彧鏄渶瑕佹敞鎰忕殑鏄細

鍔熻兘閮ㄥ垎鐨勪富鐣岄潰闇瑕佺戶鎵胯嚦鎻掍歡鐣岄潰鍩虹被錛?span style="color: black;">PluginWidget錛屾彃浠舵帴鍙d腑鐢ㄥ叿浣撶殑瀹炵幇綾繪寚閽堢粰鎻掍歡鐣岄潰鍩虹被鎸囬拡璧嬪鹼紝鍦ㄥ姞杞芥彃浠剁殑涓繪鏋朵腑閫氳繃鎻掍歡鎺ュ彛涓畾涔夌殑鍩虹被鎸囬拡緇熶竴璋冪敤錛屽埄鐢–++鍔ㄦ佹妧鏈姩鎬佽瘑鍒叿浣撴寚鍚戠殑瀹炵幇綾匯?/span>

鎻掍歡鐣岄潰綾誨繀欏誨疄鐜板熀綾葷殑铏氬嚱鏁幫細CreateActions()鐢ㄤ簬鍒涘緩Action

鍒涘緩Action闇瑕佷嬌鐢ㄥ熀綾葷殑鏂規硶newAction鍒涘緩錛屽湪姝ゅ嚱鏁頒腑鍔犲叆浜嗕繚瀛樺垱寤虹殑Action鍔熻兘銆?/span>

鎻掍歡鎺ュ彛瀹氫箟濡備笅錛?/span>

class QPluginInterface

{

public:

    // 鏋愭瀯鍑芥暟

    virtual ~QPluginInterface() {}

   

    // 鎻掍歡鍚嶇О

    virtual    QString    PluginName() = 0;

   

    // 鎻掍歡鏄劇ず鍦ㄤ富妗嗘灦涓殑鍥炬爣鏂囦歡璺緞

    virtual    QString PluginIconurl() = 0;

   

    //銆鎻掍歡鎻愪緵鐨勫澶栨搷浣滄帴鍙i泦

    virtual QList<QAction*>* Actions() = 0;

 

    // 鍒涘緩鎻掍歡鎻愪緵鐨勬搷浣滄柟娉?/span>

    virtual    void CreateActions()=0;

 

    // 鎻掍歡鐨勪富鐣岄潰

    virtual QWidget* Widget() = 0;

protected:

    // 鎻掍歡鐨勪富鐣岄潰鍩虹被

    PluginWidget *pluginWidget;

};

鎻掍歡鐣岄潰鍩虹被瀹氫箟濡備笅錛?/span>

class PluginWidget :public QMainWindow

{

    Q_OBJECT

public:

    PluginWidget(QWidget*parent=0);

    ~PluginWidget();

    QList<QAction*>* Actions();

    virtual void      CreateActions(){}

    QActionnewAction(const QIcon &icon,const QString &text,QObject*parent);

    QAction *         newAction(const QString &text,QObject*parent);

    void       AppendAction(QAction*act);

protected:

    // action閾捐〃

    QList<QAction*> *m_actlist;

};

涓嬪浘鏄竴涓疄鐜版渚嬩腑鍚勭被涔嬮棿鐨勫叧緋誨浘錛?/span>

鍩轟簬QT Plugin妗嗘灦緇撴瀯  - yleesun - 涓庨潚鏄ユ湁鍏崇殑鏃ュ瓙...

3.      鎻掍歡璋冪敤

鎻掍歡鍦ㄤ富妗嗘灦涓姩鎬佸姞杞斤紝鐩墠鑰冭檻涓繪鏋跺熀鏈粨鏋勬槸緇ф壙鑷?/span>QMainWindow錛屽伐鍏鋒爮涓婃樉紺哄綋鍓嶅姞杞界殑鎻掍歡鐨勫姛鑳介敭錛屽茍鐣欐湁榪斿洖閿彲浠ュ洖閫鍒頒笂涓綰с備富宸ヤ綔鍖烘槸涓涓?/span>QStackWidget,淇濆瓨鎻掍歡鐨勭晫闈紝騫舵妸鎻掍歡搴忓彿鍜屾彃浠跺搴旂殑鐣岄潰寤虹珛鏄犲皠錛屼繚瀛樺湪QMap<int,QWidget>涓傞氳繃搴忓彿鍒?/span>QStackWidget涓垏鎹㈢晫闈€?/span>

涓嬪浘鏄妸DBManager鍋氭垚鎻掍歡鍔犺澆鍒頒富妗嗘灦鐨勮繍琛岀晫闈細

鍩轟簬QT Plugin妗嗘灦緇撴瀯  - yleesun - 涓庨潚鏄ユ湁鍏崇殑鏃ュ瓙...

涓嬪浘鏄妸涓涓畝鍗曠殑緇樺浘紼嬪簭鍋氭垚浜嗘彃浠訛紝鍔犺澆鍒頒富妗嗘灦鐨勮繍琛岀晫闈細

鍩轟簬QT Plugin妗嗘灦緇撴瀯  - yleesun - 涓庨潚鏄ユ湁鍏崇殑鏃ュ瓙...

鍥涳細鎬葷粨

       鐩墠鍙槸閫氳繃瀹炵幇涓や釜鍔ㄦ佹彃浠跺湪涓繪鏋朵腑榪愯錛屽熀鏈畻鏄姛鑳芥х殑楠岃瘉錛岀鍏蜂綋瀹炴柦榪樻湁寰堝宸ヤ綔闇瑕佽繘涓姝ョ殑鐮旂┒錛屾瘮濡備富妗嗘灦鐨勯鏍鹼紝鎻掍歡鐨勭鐞嗙瓑絳夈傜敱浜庢湰浜虹殑鑳藉姏鏈夐檺錛屽彲鑳芥湁寰堝璁よ瘑涓嶅鐨勫湴鏂癸紝璇鋒寚姝c?/span>



綾崇背 2013-02-22 15:10 鍙戣〃璇勮
]]>
QT鍥懼艦瑙嗗浘浣撶郴 (The Graphics View Framework) http://m.shnenglu.com/zhonghua/archive/2013/02/06/197752.html綾崇背綾崇背Wed, 06 Feb 2013 02:38:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/02/06/197752.htmlhttp://m.shnenglu.com/zhonghua/comments/197752.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/02/06/197752.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/197752.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/197752.html

姒傚康

鍚嶇О 鍚箟
View 瑙嗗浘 瑙嗚鍖栦竴涓満鏅?/td>
Scene 鍦烘櫙 鐢ㄤ簬綆$悊鍥懼艦欏?/td>
Item 鍥懼艦欏?鍏蜂綋鐨勫浘褰㈠璞?/td>

 

QT鐨勫浘褰㈣鍥炬灦鏋勯噰鐢∕odel-View妯″瀷錛孲cence閲岄潰鍖呭惈澶氫釜Item錛屽彲浠ョ敤澶氫釜View浠ヤ笉鍚岀殑鏂瑰紡瑙傚療涓涓猄cence

鍔熻兘
Scene(QGraphicsScene)

  • 娣誨姞錛屽垹闄わ紝鏌ヨ鍥鵑」

  • 浜嬩歡鍒嗗彂

  • 綆$悊鍥鵑」鐨勯夋嫨鐘舵佸拰鐒︾偣

View 錛圦GraphicsView)

  • 涓篠cene鎻愪緵涓涓鍥炬帴鍙?/li>
  • 鎺ユ敹榧犳爣閿洏浜嬩歡錛岃漿鎹㈠悗鍙戠粰Scene
  • 璐熻矗View鍜孲cence涔嬮棿鐨勫潗鏍囧彉鎹?nbsp;

鍙互涓篤iew璁劇疆涓嶅悓鐨刅iewPort鎺т歡錛屾瘮濡俀GLWidget鏉ユ敮鎸丱penGL錛孯ead More!

Item 錛圦GraphicsItem)

 

鍥懼艦欏圭殑鍩虹被鏄疩GraphicItem

鍩虹鐨凢eature鍖呮嫭錛?

  • 澶勭悊榧犳爣閿洏浜嬩歡
  • 鎷栨斁
  • 鍒嗙粍
  • 紕版挒媯嫻?/div>

姣忎釜鍥懼艦欏歸兘鏈夎嚜宸辯殑鏈緥鍧愭爣緋葷粺錛屽茍鎻愪緵瀹冨拰鍦烘櫙鍧愭爣鐨勮漿鎹㈠嚱鏁般傛墍浠ュ彲浠ュ崟鐙棆杞垨緙╂斁鏌愪釜涓鍥懼艦欏?


闄や簡pos絳夊緢灝戠殑鍑犱釜鍑芥暟錛屽浘褰㈤」鐨勫鏁板嚱鏁版墍澶勭悊鐨勫潗鏍囬兘鏄畠鐨勬湰鍦板潗鏍囷紙渚嬪bounding rect)

鍧愭爣緋葷粺

濡備笂鎵榪拌鍥句綋緋婚噰鐢ㄤ笁縐嶅潗鏍囩郴緇燂細

  • 瑙嗗彛鍧愭爣錛?瀵瑰簲鐗╃悊鍧愭爣/璁懼鍧愭爣
  • 鍦烘櫙鍧愭爣錛?瀵瑰簲閫昏緫鍧愭爣
  • 欏瑰潗鏍囷細 鏈湴鍧愭爣

window-viewport姒傚康

window鎸囧畾浜嗛昏緫鍧愭爣鐨勭煩褰㈣寖鍥達紝viewport鎸囧畾浜嗚澶囧潗鏍囩殑鐭╁艦鑼冨洿錛屽拰WorldTransform錛堜笘鐣岃漿鎹㈢煩闃碉級涓璧鳳紝鍐沖畾浜嗛昏緫鍧愭爣鍜岃澶囧潗鏍囦箣闂寸殑杞崲

 

鍙互浣跨敤QGraphicsItemAnimation鏉ュ姩鐢諱竴涓狪tem錛屼嬌鐢≦TimeLine鏉ユ帶鍒舵椂闂磋繘搴?/p>

 

鍏跺畠鐗規?/h2>

Animation鍔ㄧ敾

涓涓狪tem鍙兘鏈夋晥鐨勫拰涓涓狝nimation瀵硅薄鍏寵仈(by QGraphicsItemAnimation::setItem)錛屽洜涓篈nimation瀵硅薄璁劇疆鍥鵑」Item鐨勮漿鎹㈢煩闃墊椂錛屼細鏇挎崲瀵硅薄鐜版湁鐨勭煩闃點?鎵浠ヤ綘涓嶈兘閫氳繃緇戝畾澶氫釜Animation瀵硅薄鏉ュ仛澶氶噸鍔ㄧ敾錛屼絾鏄綘鍙互鍦ㄤ竴涓狝nimation瀵硅薄涓緗縐嶅彉鎹㈡晥鏋滐紙鎴栬呯敤鍒嗙粍鐨勬柟娉曪紝鍒嗙駭鎺?鍒訛紵錛?/p>


QGraphicsItemAnimation鐩存帴緇ф壙鑷猀Object錛屽拰鏅氱殑QAbstractAnimation娌℃湁鍏崇郴錛屾墍浠ユ病娉曞彧鐢ㄧ敤QAnimationGroup鏉ョ粍瑁咃紝鐒跺悗涓茶/騫惰浣跨敤澶氫釜鍔ㄧ敾銆?/p>

 

鍥懼艦鎺т歡鍜屽竷灞綆$悊

QGraphicsWidget鐨勭洰鐨勬槸鍦ㄥ浘褰㈠璞$殑鍔熻兘鍩虹涓婃彁渚涚被浼糛Widget鐨勫姛鑳姐傦紙浠嶲GraphicsObject鍜?QGraphicsLayoutItem緇ф壙鏉ワ級錛屼粠鑰屽彲浠ヤ嬌鐢ㄥ畬鏁寸殑Widget鎺т歡灞炴э紝璁劇疆瀛椾綋錛孲tyle錛屾彁渚泂ize hints錛屼互鍙婁俊鍙鋒Ы鏈哄埗絳夈?

 

QGraphicsLayout鏄笓闂ㄧ敤鏉ュ竷灞QGraphicsWidget鐨勫竷灞鎺т歡銆備綘鍙互閫氳繃澶氶噸緇ф壙QGraphicsLayoutItem鏉ュ畾鍒禥GraphicsItem浣垮叾鑳借QGraphicsLayout鎵綆$悊

宓屽叆鏅氭帶浠?/h3>

浣犲彲浠ラ氳繃QGraphicsScene::addWidget鏉ュ皢涓涓櫘閫歈Widget宓屽叆鍒拌鍥句綋緋諱腑鏉ヤ嬌鐢紝鏈川鏄氳繃鍒涘緩涓涓唬鐞嗘帶浠?錛圦GraphicsProxyWidget)鏉ュ湪QWidget鍜孮GraphicsItem涔嬮棿浼犻掍簨浠躲傞渶瑕佹敞鎰忕殑鏄紝榪欏彧鏄竴涓壒孌婄殑瀹炵幇鏂瑰紡錛?瀵規ц兘鏈夎姹傜殑紼嬪簭涓嶅疁浣跨敤榪欎釜鏈哄埗銆傦紙娌℃湁澶湅鍑哄摢閲屽鎬ц兘鏈夊緢澶у獎鍝嶏級

 

QGraphicsProxyWidget鑳藉澶勭悊澶嶆潅鐨勬帶浠跺祵濂楋紝鐢氳嚦鑳借嚜鍔ㄥ琚祵濂楁帶浠剁殑瀛怭opup Window鎺т歡鍒涘緩浠g悊鎺т歡銆?
 

QGraphicsView鏈韓涔熸槸涓涓櫘閫歈Widget鎺т歡錛屾墍浠ュ彲浠ヨ娣誨姞鍒癝cene涓紝鍒涘緩澶嶆潅鐨勫祵濂楄鍥句綋緋?



綾崇背 2013-02-06 10:38 鍙戣〃璇勮
]]>瀛愮獥鍙?鍋滈潬 http://m.shnenglu.com/zhonghua/archive/2013/02/06/197751.html綾崇背綾崇背Wed, 06 Feb 2013 02:00:00 GMThttp://m.shnenglu.com/zhonghua/archive/2013/02/06/197751.htmlhttp://m.shnenglu.com/zhonghua/comments/197751.htmlhttp://m.shnenglu.com/zhonghua/archive/2013/02/06/197751.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/197751.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/197751.html QRect rectWorkArea = qApp->desktop()->availableGeometry();
 QPoint ptLeftTop = geometry().topRight() + QPoint(2, 0);
 QSize sizeSettingsWindow = m_pSettingsWindow->size();
 if(ptLeftTop.x() + sizeSettingsWindow.width() > rectWorkArea.right())
  ptLeftTop.setX(rectWorkArea.right() - sizeSettingsWindow.width());
 m_pSettingsWindow->move(ptLeftTop);

綾崇背 2013-02-06 10:00 鍙戣〃璇勮
]]>
姝e垯琛ㄨ揪寮忚娉?/title><link>http://m.shnenglu.com/zhonghua/archive/2012/10/23/193715.html</link><dc:creator>綾崇背</dc:creator><author>綾崇背</author><pubDate>Tue, 23 Oct 2012 03:03:00 GMT</pubDate><guid>http://m.shnenglu.com/zhonghua/archive/2012/10/23/193715.html</guid><wfw:comment>http://m.shnenglu.com/zhonghua/comments/193715.html</wfw:comment><comments>http://m.shnenglu.com/zhonghua/archive/2012/10/23/193715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhonghua/comments/commentRss/193715.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhonghua/services/trackbacks/193715.html</trackback:ping><description><![CDATA[<div><p>涓涓鍒欒〃杈懼紡灝辨槸鐢辨櫘閫氬瓧絎︼紙渚嬪瀛楃 a 鍒?z錛変互鍙婄壒孌婂瓧絎︼紙縐頒負<em>鍏冨瓧絎?/em>錛夌粍鎴愮殑鏂囧瓧妯″紡銆傝妯″紡鎻忚堪鍦ㄦ煡鎵炬枃瀛椾富浣撴椂寰呭尮閰嶇殑涓涓垨澶氫釜瀛楃涓層傛鍒欒〃杈懼紡浣滀負涓涓ā鏉匡紝灝嗘煇涓瓧絎︽ā寮忎笌鎵鎼滅儲鐨勫瓧絎︿覆榪涜鍖歸厤銆?/p><p>榪欓噷鏈変竴浜涘彲鑳戒細閬囧埌鐨勬鍒欒〃杈懼紡紺轟緥錛?/p><table frame="box" rules="all" border="1" cellspacing="0" cols="3"><tbody><tr valign="top"> <th width="30%">Visual Basic Scripting Edition</th> <th width="30%">VBScript</th> <th width="40%">鍖歸厤</th> </tr><tr valign="top"> <td width="30%">/^\[ \t]*$/</td> <td width="30%">"^\[ \t]*$"</td> <td width="40%">鍖歸厤涓涓┖鐧借銆?/td> </tr><tr valign="top"> <td width="30%">/\d{2}-\d{5}/</td> <td width="30%">"\d{2}-\d{5}"</td> <td width="40%">楠岃瘉涓涓狪D 鍙風爜鏄惁鐢變竴涓?浣嶆暟瀛楋紝涓涓繛瀛楃浠ュ強涓涓?浣嶆暟瀛楃粍鎴愩?/td> </tr><tr valign="top"> <td width="30%">/<(.*)>.*<\/\1>/</td> <td width="30%">"<(.*)>.*<\/\1>"</td> <td width="40%">鍖歸厤涓涓?HTML 鏍囪銆?/td> </tr> </tbody></table><br /><p>涓嬭〃鏄厓瀛楃鍙婂叾鍦ㄦ鍒欒〃杈懼紡涓婁笅鏂囦腑鐨勮涓虹殑涓涓畬鏁村垪琛細</p><table frame="box" rules="all" border="1" cellspacing="0" cols="2"><tbody><tr valign="top"> <th width="16%">瀛楃</th> <th width="84%">鎻忚堪</th> </tr><tr valign="top"> <td width="16%">\</td> <td width="84%">灝嗕笅涓涓瓧絎︽爣璁頒負涓涓壒孌婂瓧絎︺佹垨涓涓師涔夊瓧絎︺佹垨涓涓?鍚庡悜寮曠敤銆佹垨涓涓叓榪涘埗杞箟絎︺備緥濡傦紝'n' 鍖歸厤瀛楃 "n"銆?\n' 鍖歸厤涓涓崲琛岀銆傚簭鍒?'\\' 鍖歸厤 "\" 鑰?"\(" 鍒欏尮閰?"("銆?/td> </tr><tr valign="top"> <td width="16%">^</td> <td width="84%">鍖歸厤杈撳叆瀛楃涓茬殑寮濮嬩綅緗傚鏋滆緗簡 <strong>RegExp</strong> 瀵硅薄鐨?<strong>Multiline</strong> 灞炴э紝^ 涔熷尮閰?'\n' 鎴?'\r' 涔嬪悗鐨勪綅緗?/td> </tr><tr valign="top"> <td width="16%">$</td> <td width="84%">鍖歸厤杈撳叆瀛楃涓茬殑緇撴潫浣嶇疆銆傚鏋滆緗簡<strong>RegExp</strong> 瀵硅薄鐨?<strong>Multiline</strong> 灞炴э紝$ 涔熷尮閰?'\n' 鎴?'\r' 涔嬪墠鐨勪綅緗?/td> </tr><tr valign="top"> <td width="16%">*</td> <td width="84%">鍖歸厤鍓嶉潰鐨勫瓙琛ㄨ揪寮忛浂嬈℃垨澶氭銆備緥濡傦紝zo* 鑳藉尮閰?"z" 浠ュ強 "zoo"銆?* 絳変環浜巤0,}銆?/td> </tr><tr valign="top"> <td width="16%">+</td> <td width="84%">鍖歸厤鍓嶉潰鐨勫瓙琛ㄨ揪寮忎竴嬈℃垨澶氭銆備緥濡傦紝'zo+' 鑳藉尮閰?"zo" 浠ュ強 "zoo"錛屼絾涓嶈兘鍖歸厤 "z"銆? 絳変環浜?{1,}銆?/td> </tr><tr valign="top"> <td width="16%">?</td> <td width="84%">鍖歸厤鍓嶉潰鐨勫瓙琛ㄨ揪寮忛浂嬈℃垨涓嬈°備緥濡傦紝"do(es)?" 鍙互鍖歸厤 "do" 鎴?"does" 涓殑"do" 銆? 絳変環浜?{0,1}銆?/td> </tr><tr valign="top"> <td width="16%">{<em>n</em>}</td> <td width="84%"><em>n</em> 鏄竴涓潪璐熸暣鏁般傚尮閰嶇‘瀹氱殑 <em>n</em> 嬈°備緥濡傦紝'o{2}' 涓嶈兘鍖歸厤 "Bob" 涓殑 'o'錛屼絾鏄兘鍖歸厤 "food" 涓殑涓や釜 o銆?/td> </tr><tr valign="top"> <td width="16%">{<em>n</em>,}</td> <td width="84%"><em>n</em> 鏄竴涓潪璐熸暣鏁般傝嚦灝戝尮閰?em>n</em> 嬈°備緥濡傦紝'o{2,}' 涓嶈兘鍖歸厤 "Bob" 涓殑 'o'錛屼絾鑳藉尮閰?"foooood" 涓殑鎵鏈?o銆?o{1,}' 絳変環浜?'o+'銆?o{0,}' 鍒欑瓑浠蜂簬 'o*'銆?/td> </tr><tr valign="top"> <td width="16%">{<em>n</em>,<em>m</em>}</td> <td width="84%"><em>m</em> 鍜?<em>n</em> 鍧囦負闈炶礋鏁存暟錛屽叾涓?em>n</em> <= <em>m</em>銆傛渶灝戝尮閰?<em>n</em> 嬈′笖鏈澶氬尮閰?<em>m</em> 嬈°傚垬錛?"o{1,3}" 灝嗗尮閰?"fooooood" 涓殑鍓嶄笁涓?o銆?o{0,1}' 絳変環浜?'o?'銆傝娉ㄦ剰鍦ㄩ楀彿鍜屼袱涓暟涔嬮棿涓嶈兘鏈夌┖鏍箋?/td> </tr><tr valign="top"> <td width="16%">?</td> <td width="84%">褰撹瀛楃绱ц窡鍦ㄤ換浣曚竴涓叾浠栭檺鍒剁 (*, +, ?, {<em>n</em>}, {<em>n</em>,}, {<em>n</em>,<em>m</em>}) 鍚庨潰鏃訛紝鍖歸厤妯″紡鏄潪璐┆鐨勩傞潪璐┆妯″紡灝藉彲鑳藉皯鐨勫尮閰嶆墍鎼滅儲鐨勫瓧絎︿覆錛岃岄粯璁ょ殑璐┆妯″紡鍒欏敖鍙兘澶氱殑鍖歸厤鎵鎼滅儲鐨勫瓧絎︿覆銆備緥濡傦紝瀵逛簬瀛楃涓?"oooo"錛?o+?' 灝嗗尮閰嶅崟涓?"o"錛岃?'o+' 灝嗗尮閰嶆墍鏈?'o'銆?/td> </tr><tr valign="top"> <td width="16%">.</td> <td width="84%">鍖歸厤闄?"\n" 涔嬪鐨勪換浣曞崟涓瓧絎︺傝鍖歸厤鍖呮嫭 '\n' 鍦ㄥ唴鐨勪換浣曞瓧絎︼紝璇蜂嬌鐢ㄨ薄 '[.\n]' 鐨勬ā寮忋?/td> </tr><tr valign="top"> <td width="16%">(<em>pattern</em>)</td> <td width="84%">鍖歸厤<em>pattern</em> 騫惰幏鍙栬繖涓鍖歸厤銆傛墍鑾峰彇鐨勫尮閰嶅彲浠ヤ粠浜х敓鐨?Matches 闆嗗悎寰楀埌錛屽湪VBScript 涓嬌鐢?<strong>SubMatches</strong> 闆嗗悎錛屽湪Visual Basic Scripting Edition 涓垯浣跨敤 <strong>$0</strong>…<strong>$9</strong> 灞炴с傝鍖歸厤鍦嗘嫭鍙峰瓧絎︼紝璇蜂嬌鐢?'\(' 鎴?'\)'銆?/td> </tr><tr valign="top"> <td width="16%">(?:<em>pattern</em>)</td> <td width="84%">鍖歸厤 <em>pattern</em> 浣嗕笉鑾峰彇鍖歸厤緇撴灉錛屼篃灝辨槸璇磋繖鏄竴涓潪鑾峰彇鍖歸厤錛屼笉榪涜瀛樺偍渚涗互鍚庝嬌鐢ㄣ傝繖鍦ㄤ嬌鐢?"鎴? 瀛楃 (|) 鏉ョ粍鍚堜竴涓ā寮忕殑鍚勪釜閮ㄥ垎鏄緢鏈夌敤銆備緥濡傦紝 'industr(?:y|ies) 灝辨槸涓涓瘮 'industry|industries' 鏇寸畝鐣ョ殑琛ㄨ揪寮忋?/td> </tr><tr valign="top"> <td width="16%">(?=<em>pattern</em>)</td> <td width="84%">姝e悜棰勬煡錛屽湪浠諱綍鍖歸厤 <em>pattern</em> 鐨勫瓧絎︿覆寮濮嬪鍖歸厤鏌ユ壘瀛楃涓層傝繖鏄竴涓潪鑾峰彇鍖歸厤錛屼篃灝辨槸璇達紝璇ュ尮閰嶄笉闇瑕佽幏鍙栦緵浠ュ悗浣跨敤銆備緥濡傦紝 'Windows (?=95|98|NT|2000)' 鑳藉尮閰?"Windows 2000" 涓殑 "Windows" 錛屼絾涓嶈兘鍖歸厤 "Windows 3.1" 涓殑 "Windows"銆傞鏌ヤ笉娑堣楀瓧絎︼紝涔熷氨鏄錛屽湪涓涓尮閰嶅彂鐢熷悗錛屽湪鏈鍚庝竴嬈″尮閰嶄箣鍚庣珛鍗沖紑濮嬩笅涓嬈″尮閰嶇殑鎼滅儲錛岃屼笉鏄粠鍖呭惈棰勬煡鐨勫瓧絎︿箣鍚庡紑濮嬨?/td> </tr><tr valign="top"> <td width="16%">(?!<em>pattern</em>)</td> <td width="84%">璐熷悜棰勬煡錛屽湪浠諱綍涓嶅尮閰峃egative lookahead matches the search string at any point where a string not matching <em>pattern</em> 鐨勫瓧絎︿覆寮濮嬪鍖歸厤鏌ユ壘瀛楃涓層傝繖鏄竴涓潪鑾峰彇鍖歸厤錛屼篃灝辨槸璇達紝璇ュ尮閰嶄笉闇瑕佽幏鍙栦緵浠ュ悗浣跨敤銆備緥濡?Windows (?!95|98|NT|2000)' 鑳藉尮閰?"Windows 3.1" 涓殑 "Windows"錛屼絾涓嶈兘鍖歸厤 "Windows 2000" 涓殑 "Windows"銆傞鏌ヤ笉娑堣楀瓧絎︼紝涔熷氨鏄錛屽湪涓涓尮閰嶅彂鐢熷悗錛屽湪鏈鍚庝竴嬈″尮閰嶄箣鍚庣珛鍗沖紑濮嬩笅涓嬈″尮閰嶇殑鎼滅儲錛岃屼笉鏄粠鍖呭惈棰勬煡鐨勫瓧絎︿箣鍚庡紑濮? </td> </tr><tr valign="top"> <td width="16%"><em>x</em>|<em>y</em></td> <td width="84%">鍖歸厤 <em>x</em> 鎴?<em>y</em>銆備緥濡傦紝'z|food' 鑳藉尮閰?"z" 鎴?"food"銆?(z|f)ood' 鍒欏尮閰?"zood" 鎴?"food"銆?</td> </tr><tr valign="top"> <td width="16%">[<em>xyz</em>]</td> <td width="84%">瀛楃闆嗗悎銆傚尮閰嶆墍鍖呭惈鐨勪換鎰忎竴涓瓧絎︺備緥濡傦紝 '[abc]' 鍙互鍖歸厤 "plain" 涓殑 'a'銆?</td> </tr><tr valign="top"> <td width="16%">[^<em>xyz</em>]</td> <td width="84%">璐熷煎瓧絎﹂泦鍚堛傚尮閰嶆湭鍖呭惈鐨勪換鎰忓瓧絎︺備緥濡傦紝 '[^abc]' 鍙互鍖歸厤 "plain" 涓殑'p'銆?</td> </tr><tr valign="top"> <td width="16%">[<em>a-z</em>]</td> <td width="84%">瀛楃鑼冨洿銆傚尮閰嶆寚瀹氳寖鍥村唴鐨勪換鎰忓瓧絎︺備緥濡傦紝'[a-z]' 鍙互鍖歸厤 'a' 鍒?'z' 鑼冨洿鍐呯殑浠繪剰灝忓啓瀛楁瘝瀛楃銆?</td> </tr><tr valign="top"> <td width="16%">[^<em>a-z</em>]</td> <td width="84%">璐熷煎瓧絎﹁寖鍥淬傚尮閰嶄換浣曚笉鍦ㄦ寚瀹氳寖鍥村唴鐨勪換鎰忓瓧絎︺備緥濡傦紝'[^a-z]' 鍙互鍖歸厤浠諱綍涓嶅湪 'a' 鍒?'z' 鑼冨洿鍐呯殑浠繪剰瀛楃銆?</td> </tr><tr valign="top"> <td width="16%">\b</td> <td width="84%">鍖歸厤涓涓崟璇嶈竟鐣岋紝涔熷氨鏄寚鍗曡瘝鍜岀┖鏍奸棿鐨勪綅緗備緥濡傦紝 'er\b' 鍙互鍖歸厤"never" 涓殑 'er'錛屼絾涓嶈兘鍖歸厤 "verb" 涓殑 'er'銆?</td> </tr><tr valign="top"> <td width="16%">\B</td> <td width="84%">鍖歸厤闈炲崟璇嶈竟鐣屻?er\B' 鑳藉尮閰?"verb" 涓殑 'er'錛屼絾涓嶈兘鍖歸厤 "never" 涓殑 'er'銆?/td> </tr><tr valign="top"> <td width="16%">\c<em>x</em></td> <td width="84%">鍖歸厤鐢?em>x</em>鎸囨槑鐨勬帶鍒跺瓧絎︺備緥濡傦紝 \cM 鍖歸厤涓涓?Control-M 鎴栧洖杞︾銆?<em>x</em> 鐨勫煎繀欏諱負 A-Z 鎴?a-z 涔嬩竴銆傚惁鍒欙紝灝?c 瑙嗕負涓涓師涔夌殑 'c' 瀛楃銆?</td> </tr><tr valign="top"> <td width="16%">\d</td> <td width="84%">鍖歸厤涓涓暟瀛楀瓧絎︺傜瓑浠蜂簬 [0-9]銆?</td> </tr><tr valign="top"> <td width="16%">\D</td> <td width="84%">鍖歸厤涓涓潪鏁板瓧瀛楃銆傜瓑浠蜂簬 [^0-9]銆?</td> </tr><tr valign="top"> <td width="16%">\f</td> <td width="84%">鍖歸厤涓涓崲欏電銆傜瓑浠蜂簬 \x0c 鍜?\cL銆?/td> </tr><tr valign="top"> <td width="16%">\n</td> <td width="84%">鍖歸厤涓涓崲琛岀銆傜瓑浠蜂簬 \x0a 鍜?\cJ銆?/td> </tr><tr valign="top"> <td width="16%">\r</td> <td width="84%">鍖歸厤涓涓洖杞︾銆傜瓑浠蜂簬 \x0d 鍜?\cM銆?/td> </tr><tr valign="top"> <td width="16%">\s</td> <td width="84%">鍖歸厤浠諱綍絀虹櫧瀛楃錛屽寘鎷┖鏍箋佸埗琛ㄧ銆佹崲欏電絳夌瓑銆傜瓑浠蜂簬 [ \f\n\r\t\v]銆?/td> </tr><tr valign="top"> <td width="16%">\S</td> <td width="84%">鍖歸厤浠諱綍闈炵┖鐧藉瓧絎︺傜瓑浠蜂簬 [^ \f\n\r\t\v]銆?/td> </tr><tr valign="top"> <td width="16%">\t</td> <td width="84%">鍖歸厤涓涓埗琛ㄧ銆傜瓑浠蜂簬 \x09 鍜?\cI銆?/td> </tr><tr valign="top"> <td width="16%">\v</td> <td width="84%">鍖歸厤涓涓瀭鐩村埗琛ㄧ銆傜瓑浠蜂簬 \x0b 鍜?\cK銆?/td> </tr><tr valign="top"> <td width="16%">\w</td> <td width="84%">鍖歸厤鍖呮嫭涓嬪垝綰跨殑浠諱綍鍗曡瘝瀛楃銆傜瓑浠蜂簬'[A-Za-z0-9_]'銆?</td> </tr><tr valign="top"> <td width="16%">\W</td> <td width="84%">鍖歸厤浠諱綍闈炲崟璇嶅瓧絎︺傜瓑浠蜂簬 '[^A-Za-z0-9_]'銆?</td> </tr><tr valign="top"> <td width="16%">\x<em>n</em></td> <td width="84%">鍖歸厤 <em>n</em>錛屽叾涓?<em>n</em> 涓哄崄鍏繘鍒惰漿涔夊箋傚崄鍏繘鍒惰漿涔夊煎繀欏諱負紜畾鐨勪袱涓暟瀛楅暱銆備緥濡傦紝 '\x41' 鍖歸厤 "A"銆?\x041' 鍒欑瓑浠蜂簬 '\x04' & "1"銆傛鍒欒〃杈懼紡涓彲浠ヤ嬌鐢?ASCII 緙栫爜銆?</td> </tr><tr valign="top"> <td width="16%">\<em>num</em></td> <td width="84%">鍖歸厤 <em>num</em>錛屽叾涓?<em>num</em> 鏄竴涓鏁存暟銆傚鎵鑾峰彇鐨勫尮閰嶇殑寮曠敤銆備緥濡傦紝'(.)\1' 鍖歸厤涓や釜榪炵畫鐨勭浉鍚屽瓧絎︺?</td> </tr><tr valign="top"> <td width="16%">\<em>n</em></td> <td width="84%">鏍囪瘑涓涓叓榪涘埗杞箟鍊兼垨涓涓悗鍚戝紩鐢ㄣ傚鏋?\<em>n</em> 涔嬪墠鑷沖皯 <em>n</em> 涓幏鍙栫殑瀛愯〃杈懼紡錛屽垯 <em>n</em> 涓哄悗鍚戝紩鐢ㄣ傚惁鍒欙紝濡傛灉 <em>n</em> 涓哄叓榪涘埗鏁板瓧 (0-7)錛屽垯 <em>n</em> 涓轟竴涓叓榪涘埗杞箟鍊箋?/td> </tr><tr valign="top"> <td width="16%">\<em>nm</em></td> <td width="84%">鏍囪瘑涓涓叓榪涘埗杞箟鍊兼垨涓涓悗鍚戝紩鐢ㄣ傚鏋?\<em>nm</em> 涔嬪墠鑷沖皯鏈塱s preceded by at least <em>nm</em> 涓幏鍙栧緱瀛愯〃杈懼紡錛屽垯 <em>nm</em> 涓哄悗鍚戝紩鐢ㄣ傚鏋?\<em>nm</em> 涔嬪墠鑷沖皯鏈?<em>n</em> 涓幏鍙栵紝鍒?<em>n</em> 涓轟竴涓悗璺熸枃瀛?<em>m </em>鐨勫悗鍚戝紩鐢ㄣ傚鏋滃墠闈㈢殑鏉′歡閮戒笉婊¤凍錛岃嫢  <em>n</em> 鍜?<em>m</em> 鍧囦負鍏繘鍒舵暟瀛?(0-7)錛屽垯 \<em>nm</em> 灝嗗尮閰嶅叓榪涘埗杞箟鍊?<em>nm</em>銆?/td> </tr><tr valign="top"> <td width="16%">\<em>nml</em></td> <td width="84%">濡傛灉 <em>n</em> 涓哄叓榪涘埗鏁板瓧 (0-3)錛屼笖 <em>m</em> 鍜?<em>l</em> 鍧囦負鍏繘鍒舵暟瀛?(0-7)錛屽垯鍖歸厤鍏繘鍒惰漿涔夊?<em>nml銆?/em></td> </tr><tr valign="top"> <td width="16%">\u<em>n</em></td> <td width="84%">鍖歸厤 <em>n</em>錛屽叾涓?<em>n</em> 鏄竴涓敤鍥涗釜鍗佸叚榪涘埗鏁板瓧琛ㄧず鐨?Unicode 瀛楃銆備緥濡傦紝 \u00A9 鍖歸厤鐗堟潈絎﹀彿 (?)銆?/td> </tr> </tbody></table></div><img src ="http://m.shnenglu.com/zhonghua/aggbug/193715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhonghua/" target="_blank">綾崇背</a> 2012-10-23 11:03 <a href="http://m.shnenglu.com/zhonghua/archive/2012/10/23/193715.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title> QT璁劇疆TableView鐨勬爣棰樻牱寮?http://m.shnenglu.com/zhonghua/archive/2012/09/05/189601.html綾崇背綾崇背Wed, 05 Sep 2012 13:36:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/09/05/189601.htmlhttp://m.shnenglu.com/zhonghua/comments/189601.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/09/05/189601.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/189601.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/189601.html

this->tableView->horizontalHeader()->setStyleSheet("QHeaderView::section {background-color:darkcyan;"
                                                       "color: black;padding-left: 4px;border: 1px solid #6c6c6c;}");


this->tableView->verticalHeader()->setStyleSheet("QHeaderView::section {background-color:darkcyan;"
                                                     "color: black;padding-left: 4px;border: 1px solid #6c6c6c;}");

 

浠ヤ笅濂界湅鐨勬牱寮忔潵鑷簬http://blog.csdn.net/zenwanxin/article/details/6524559

tableView->horizontalHeader()->setStyleSheet

("QHeaderView::section {background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,"

"stop:0 #616161, stop: 0.5 yellow,stop: 0.6 green, stop:1 cyan);"
"color: white;padding-left: 4px;border: 1px solid #6c6c6c;}"
"QHeaderView::section:checked{background-color: red;}"
"QHeaderView::down-arrow {image: url(down_arrow.png);}"
"QHeaderView::up-arrow {image: url(up_arrow.png);}");



綾崇背 2012-09-05 21:36 鍙戣〃璇勮
]]>
杞? 緇忓吀SQL璇彞澶у叏 http://m.shnenglu.com/zhonghua/archive/2012/08/30/188707.html綾崇背綾崇背Thu, 30 Aug 2012 01:43:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/08/30/188707.htmlhttp://m.shnenglu.com/zhonghua/comments/188707.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/08/30/188707.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/188707.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/188707.html闃呰鍏ㄦ枃

綾崇背 2012-08-30 09:43 鍙戣〃璇勮
]]>
濡備綍瀹炵幇QT紿楀彛鑳屾櫙鍥劇墖闅忕獥鍙eぇ灝忚屽彉鍖?澶囧繕)http://m.shnenglu.com/zhonghua/archive/2012/08/28/188505.html綾崇背綾崇背Tue, 28 Aug 2012 02:56:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/08/28/188505.htmlhttp://m.shnenglu.com/zhonghua/comments/188505.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/08/28/188505.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/188505.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/188505.html
鏂規涓錛氫嬌鐢╬aintEvent
C/C++ code
void Widget::paintEvent(QPaintEvent *e)
{ QPainter painter(this);
 painter.drawPixmap(0,0,this->width(),this->height(),QPixmap(":/xxx.png"));
 }


鏂規浜岋細浣跨敤setStyleSheet
C/C++ code
widget->setStyleSheet("border-image: url(:/xxx.png)");


綾崇背 2012-08-28 10:56 鍙戣〃璇勮
]]>
杞?Qt QSqlTableModel 浣跨敤蹇冨緱 http://m.shnenglu.com/zhonghua/archive/2012/08/20/187749.html綾崇背綾崇背Mon, 20 Aug 2012 03:24:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/08/20/187749.htmlhttp://m.shnenglu.com/zhonghua/comments/187749.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/08/20/187749.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/187749.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/187749.html

Qt  QSqlTableModel  浣跨敤蹇冨緱

榪炴帴鏁版嵁搴?/strong>

鎵цsql鏌ヨ錛屾潯浠舵樉紺猴紝鎺掑簭

鑾峰彇璁板綍鏁幫紝鍒楁暟浠ュ強璁板綍鍐呭錛屽瓧孌靛唴瀹?/strong>

鏂板錛屼慨鏀癸紝鍒犻櫎錛屾仮澶?/strong>

鍏跺畠

 

 

1---------------榪炴帴鏁版嵁搴擄紙鎴戠敤鐨刟ccess2003鍋氬疄楠岋級

鍦?pro鏂囦歡娣誨姞

QT  +=SQL

win32:CONFIG+=console

 

------------------------MAIN.CPP---------------

#include <QtGui/QApplication>

#include <QSqlDatabase>

#include <QSqlQuery>

#include <QDebug>

#include <QVariant>

#include <QString>

#include <QSqlTableModel>

#include <QTableView>

#include "mainwindow.h"

int main(intargc, char *argv[])

{

    QApplication a(argc, argv);

   // MainWindow w;

    //w.show();

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

    db.setDatabaseName("DRIVER={Microsoft AccessDriver (*.mdb)};FIL={MS Access};DBQ=barcode.mdb;UID='';PWD=''");

    bool ok = db.open();

    if(ok)

    {

        qDebug()<<"connect ok!";

    }

    else

    {

        qDebug()<<"connect error!";

        return false;

    }

    return a.exec();

}

2-----鎵цsql鏌ヨ錛屾潯浠舵樉紺猴紝鎺掑簭

鏌ヨ錛?/strong>

model = newQSqlTableModel(this);
model->setTable(“student”);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select(); //閫夊彇鏁翠釜琛ㄧ殑鎵鏈夎
// model->removeColumn(1); //涓嶆樉紺虹浜屽垪,濡傛灉榪欐椂娣誨姞璁板綍錛屽垯璇ュ睘鎬х殑鍊兼坊鍔犱笉涓?/p>

QTableView *view= new QTableView;

        view->setModel(model);

        view->show();

//View->setEditTriggers(QAbstractItemView::NoEditTriggers);  浣垮叾涓嶅彲緙栬緫

鏉′歡錛氾紙絳変環浜嶴QL璇彞鐨剋here錛?/strong>

model->setFilter(QObject::tr(“name= ‘admin’”).arg(name)); //鏍規嵁濮撳悕榪涜絳涢?br />     model->select(); //鏄劇ず緇撴灉

鎺掑簭:(絳変環浜嶰RDERBY)
   model->setSort(0,Qt::AscendingOrder); //id灞炴э紝鍗崇0鍒楋紝鍗囧簭鎺掑垪
   model->select();


    model->setSort(0,Qt::DescendingOrder); //id灞炴э紝鍗崇0鍒楋紝闄嶅簭鎺?br />     model->select();

3------鑾峰彇璁板綍鏁幫紝鍒楁暟浠ュ強璁板綍鍐呭錛屽瓧孌靛唴瀹?/strong>

璁板綍鏁幫細 Model->rowcount

璁板綍鍊鹼細

鍊?model.record(num).value(1).toString(); 

Qrecord record= QSqlRecord record = tablemodel.record(璁板綍琛屾暟); 

鍊?Record.value(“瀛楁鍚嶆垨绱㈠紩”)

瀛楁鏁幫細

瀛楁鍊鹼細

 

4------鏂板錛屼慨鏀癸紝鍒犻櫎,鎻愪氦錛屾挙閿

鏂板錛?/strong>

    int rowNum = model->rowCount();//鑾峰緱琛ㄧ殑琛屾暟
   int id = 10;
    model->insertRow(rowNum); //娣誨姞涓琛?br />     model->setData(model->index(rowNum,0),id);
    //model->submitAll(); //鍙互鐩存帴鎻愪氦

鎴栬呯敤record娣誨姞

QSqlRecord record = tablemodel.record();

record.setValue("nam","new");

model.insertRecord(1,record);

 

淇敼錛?/strong>

棣栧厛鐢ㄦ潯浠舵壘鍒版煇涓鏉¤褰?/p>

QSqlRecord record = tablemodel.record(num);

record.setValue("name",record.value("name").toString()+"2");

tablemodel.setRecord(num,record);

if(tablemodel.submitAll())

"鎴愬姛錛?

else

"澶辮觸錛?

鎴栬呯敤涓嬮潰鏂規硶鐢╯etData()鏉ヤ慨鏀癸紝浠g爜濡備笅錛?nbsp;
model.setData(model.index(1,1),"new");
 
if(tablemodel.submitAll()) 
   "鎴愬姛錛?
else 
   "澶辮觸錛?


鍒犻櫎錛?/strong>
    int curRow = ui->tableView->currentIndex().row();
    //鑾峰彇閫変腑鐨勮
    model->removeRow(curRow);
    //鍒犻櫎璇ヨ
    int ok = QMessageBox::warning(this,tr(“鍒犻櫎褰撳墠琛?”),tr(“浣犵‘瀹?#8221;
                                                          “鍒犻櫎褰撳墠琛屽悧錛?#8221;),
                        QMessageBox::Yes,QMessageBox::No);
    if(ok == QMessageBox::No)
    {
       model->revertAll();//濡傛灉涓嶅垹闄わ紝鍒欐挙閿
    }
    else model->submitAll(); //鍚﹀垯鎻愪氦錛屽湪鏁版嵁搴撲腑鍒犻櫎璇ヨ

濡傛灉娌℃湁table

tablemodel.removeRows(璧峰琛? 瑕佸垹闄ょ殑鎬昏鏁?; 
model.submitAll(); 


鎻愪氦  

    model->database().transaction();//寮濮嬩簨鍔℃搷浣?br />     if (model->submitAll()) {
        model->database().commit();//鎻愪氦
    } else {
        model->database().rollback();//鍥炴粴
        QMessageBox::warning(this,tr(“tableModel”),
                            tr(“鏁版嵁搴撻敊璇? %1″)
                            .arg(model->lastError().text()));
    }

鎾ら攢  

  model->revertAll();

5------鍏跺畠

 



he QSqlTableModel class provides an editable data model for a single database table. More...

  1. <span class="preprocessor" style="color:#404040">#include <QSqlTableModel></span>  

Inherits: QSqlQueryModel.

Inherited by: QSqlRelationalTableModel.

Public Types

enum EditStrategy { OnFieldChange, OnRowChange, OnManualSubmit }

Public Functions

  QSqlTableModel ( QObject * parent = 0, QSqlDatabase db = QSqlDatabase() )
virtual ~QSqlTableModel ()
QSqlDatabase database () const
EditStrategy editStrategy () const
int fieldIndex ( const QString & fieldName ) const
QString filter () const
bool insertRecord ( int row, const QSqlRecord & record )
bool isDirty ( const QModelIndex & index ) const
QSqlIndex primaryKey () const
virtual void revertRow ( int row )
virtual bool select ()
virtual void setEditStrategy ( EditStrategy strategy )
virtual void setFilter ( const QString & filter )
bool setRecord ( int row, const QSqlRecord & record )
virtual void setSort ( int column, Qt::SortOrder order )
virtual void setTable ( const QString & tableName )
QString tableName () const

Reimplemented Public Functions

virtual void clear ()
virtual QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const
virtual Qt::ItemFlags flags ( const QModelIndex & index ) const
virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const
virtual bool insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() )
virtual bool removeColumns ( int column, int count, const QModelIndex & parent = QModelIndex() )
virtual bool removeRows ( int row, int count, const QModelIndex & parent = QModelIndex() )
virtual int rowCount ( const QModelIndex & parent = QModelIndex() ) const
virtual bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole )
virtual void sort ( int column, Qt::SortOrder order )

Public Slots

virtual void revert ()
void revertAll ()
virtual bool submit ()
bool submitAll ()

Signals

void beforeDelete ( int row )
void beforeInsert ( QSqlRecord & record )
void beforeUpdate ( int row, QSqlRecord & record )
void primeInsert ( int row, QSqlRecord & record )

Protected Functions

virtual bool deleteRowFromTable ( int row )
QModelIndex indexInQuery ( const QModelIndex & item ) const
virtual bool insertRowIntoTable ( const QSqlRecord & values )
virtual QString orderByClause () const
virtual QString selectStatement () const
void setPrimaryKey ( const QSqlIndex & key )
void setQuery ( const QSqlQuery & query )
virtual bool updateRowInTable ( int row, const QSqlRecord & values )


綾崇背 2012-08-20 11:24 鍙戣〃璇勮
]]>
杞?Template+=fakelib 灝忚 http://m.shnenglu.com/zhonghua/archive/2012/08/17/187480.html綾崇背綾崇背Fri, 17 Aug 2012 06:01:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/08/17/187480.htmlhttp://m.shnenglu.com/zhonghua/comments/187480.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/08/17/187480.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/187480.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/187480.html鍙兘澶у鎴栧鎴栧皯閮藉湪qmake鐨?pro/.pri鏂囦歡涓榪囪繖縐嶄唬鐮?br />
TEMPLATE += fakelib
MY_NAME = $$qtLibraryTarget(dbzhang800)
TEMPLATE -= fakelib

濡傛灉鐪熺殑娌¤榪囷紝鎴栬鍙互浠庤繖鍎垮叆鎵嬪垎鏋愪笌瀛︿範Qt Solution瀵筿make鐨勪嬌鐢?br />$$qtLibraryTarget 鏈変粈涔堢敤

鎴戜滑鐭ラ亾錛屽湪Window涓嬶紝鍔ㄦ佸簱鐨?Debug 鍜?Release 鐗堜笉鑳介氱敤錛屾墍浠ヨ鏀劇疆鍦ㄤ笉鍚岀殑璺緞涓嬫垨鑰呭彇涓嶅悓鐨勫悕瀛椼傚湪Qt涓嬶紝鎴戜滑緇忓父瑙佸埌

    QtCore4.dll

    QtCored4.dll

鑰屽綋鎴戜滑鑷繁鐨勫伐紼嬩腑闇瑕佸姩鎬佸簱鏃訛紝瑕佹兂鍦ㄥ吋欏懼悇涓鉤鍙頒笅錛岀粰瀹冨彇涓悎閫傜殑鍚嶅瓧榪樻槸鏈夌偣灝忓皬鐨勬寫鎴樼殑銆?br />
鏃㈢劧Qt宸茬粡鑳藉鐞嗚嚜宸辯殑鍔ㄦ佸簱錛屾垜浠笉濡ㄧ洿鎺ュ熺敤瀹冩彁渚涚殑鏈哄埗錛岃繖渚挎槸

$$qtLibraryTarget

    浣滅敤錛氫負鍚勪釜騫沖彴涓嬬殑搴撶敓鎴愬悎閫傜殑鍚嶅瓧
    浣嶇疆錛?QTDIR/mkspecs/features/qt_functions.prf
    鍏蜂綋浠g爜錛?br />
defineReplace(qtLibraryTarget) {
   unset(LIBRARY_NAME)
   LIBRARY_NAME = $$1
   mac:!static:contains(QT_CONFIG, qt_framework) {
      QMAKE_FRAMEWORK_BUNDLE_NAME = $$LIBRARY_NAME
      export(QMAKE_FRAMEWORK_BUNDLE_NAME)
   }
   contains(TEMPLATE, .*lib):CONFIG(debug, debug|release) {
      !debug_and_release|build_pass {
          mac:RET = $$member(LIBRARY_NAME, 0)_debug
              else:win32:RET = $$member(LIBRARY_NAME, 0)d
      }
   }
   isEmpty(RET):RET = $$LIBRARY_NAME
   return($$RET)
}

娉細榪欐槸Qt4.8涓嬬殑鏂囦歡錛孮t5.0涓嬩笌姝ゅ皬鏈変笉鍚屻?br />
浠庤繖鍎夸綘鍙互鐪嬪埌錛屽湪windows涓嬪畠浣曟椂浼氭坊鍔犱竴涓猟錛屼綍鏃朵笉浼氥?br />fakelib 騫插槢鐢ㄧ殑

浠庡墠闈㈢殑浠g爜涓紝鎴戜滑鐪嬪埌鏈夎繖涔堜竴鍙?br />
   contains(TEMPLATE, .*lib)

鍙槸錛屽綋鏋勫緩鍔ㄦ佸簱鏃訛紝涓嶆槸TEMPLATE紜疄灝辨槸 lib/vclib榪欎簺浜嗕箞錛?br />
鎭╋紝鏋勫緩鏃舵病鏈夐棶棰橈紝鍙槸褰撲嬌鐢ㄦ椂鍛紵姣斿

TEMPLATE = app
SOURCES += main.cpp

LIBS += $$qtLibraryTarget(dbzhang800)

榪樿兘宸ヤ綔涔堬紵

鎭╋紝鎵浠ヤ簡銆傚氨闇瑕侀殢渚垮彇涓涓?xxxxxlib 浣滀負妯℃澘鏉ュ搫楠椾竴涓嬪畠銆?br />榪樻病緇撴潫錛?br />
鑷粠璁よ瘑瀹冧互鍚庯紝涓鐩村湪鑷繁鐨勭▼搴忎腑澶ч噺浣跨敤榪欎釜涓滆タ銆備絾鏄湁涓浠朵簨鎯呮繪槸璁╀漢鎰熻涓嶇埥銆?br />
浣跨敤瀹冧互鍚庯細

qmake -tp vc

鐢熸垚鐨凪SVC鐨勫伐紼嬫枃浠朵腑錛屾繪槸涓嶈兘寰楀埌姝g‘搴撴枃浠剁殑鍚嶅瓧錛堝叿浣撲竴鐐癸紝灝辨槸Debug妯″紡涓嬫病鏈夐偅涓猟錛?br />
鑷繁鐢ㄤ篃娌′粈涔堬紝鍙嶆涔熶笉鏄粈涔堝ぇ闂銆傚彧鏄病鎯沖埌瑙e喅鏂規绔熸槸榪欐牱

SAVE_TEMPLATE = $$TEMPLATE
TEMPLATE = fakelib
MY_NAME = $$qtLibraryTarget(dbzhang800)
TEMPLATE = $$SAVE_TEMPLATE

鍘熷洜

褰搎make浣跨敤浜?-tp 閫夐」鍚庯紝瀵筎EMPLATE澶勭悊鏃訛紝鍙帴鍙椾竴涓箋備篃灝辨槸 += 鎿嶄綔瀵瑰叾鏃犳晥銆?br />
鍏蜂綋涓鐐癸紝浣嶄簬qmake婧愮爜 project.cpp 鐨?043琛?br />
    } else if(var == QLatin1String("TEMPLATE")) {
        if(!Option::user_template.isEmpty()) {
            var = ".BUILTIN.USER." + var;
            place[var] =  QStringList(Option::user_template);
        } else {
            QString orig_template, real_template;
            if(!place[var].isEmpty())
                orig_template = place[var].first();
            real_template = orig_template.isEmpty() ? "app" : orig_template;
            if(!Option::user_template_prefix.isEmpty() && !orig_template.startsWith(Option::user_template_prefix))
                real_template.prepend(Option::user_template_prefix);
            if(real_template != orig_template) {
                var = ".BUILTIN." + var;
                place[var] = QStringList(real_template);
            }
        }

綾崇背 2012-08-17 14:01 鍙戣〃璇勮
]]>
杞?姝g‘鏀跺埌Qt灞炴ф帶浠朵腑杈撳叆妗嗘秷鎭?/title><link>http://m.shnenglu.com/zhonghua/archive/2012/08/17/187479.html</link><dc:creator>綾崇背</dc:creator><author>綾崇背</author><pubDate>Fri, 17 Aug 2012 05:52:00 GMT</pubDate><guid>http://m.shnenglu.com/zhonghua/archive/2012/08/17/187479.html</guid><wfw:comment>http://m.shnenglu.com/zhonghua/comments/187479.html</wfw:comment><comments>http://m.shnenglu.com/zhonghua/archive/2012/08/17/187479.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhonghua/comments/commentRss/187479.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhonghua/services/trackbacks/187479.html</trackback:ping><description><![CDATA[<div><p>QtPropertyBrowser2.5涓殑瀛楃涓插睘鎬у搴旂殑淇敼鏂瑰紡鏄竴涓緭鍏ユ,OnValueChange鏄湪姣忔閿叆瀛楃鏃跺彂閫佷竴嬈?榪欎釜瀵逛簬緙栬緫鍣ㄩ渶瑕佺殑閫昏緫鏉ヨ鏄竴縐嶇伨闅? Ogitor淇敼浜嗗叾婧愮爜,瑙e喅浜嗚繖涓棶棰?</p><div><p> </p></div><div>qteditorfactory.h 涓?br /><br />QtLineEditFactory綾繪坊鍔犲涓嬩唬鐮?綰㈣壊鏍囪瘑<br /><br />class QT_QTPROPERTYBROWSER_EXPORT QtLineEditFactory : public QtAbstractEditorFactory<QtStringPropertyManager><br />{<br />    Q_OBJECT<br />public:<br />    QtLineEditFactory(QObject *parent = 0);<br />    ~QtLineEditFactory();<br />protected:<br />    void connectPropertyManager(QtStringPropertyManager *manager);<br />    QWidget *createEditor(QtStringPropertyManager *manager, QtProperty *property,<br />                QWidget *parent);<br />    void disconnectPropertyManager(QtStringPropertyManager *manager);<br />private:<br />    QtLineEditFactoryPrivate *d_ptr;<br />    Q_DECLARE_PRIVATE(QtLineEditFactory)<br />    Q_DISABLE_COPY(QtLineEditFactory)<br />    Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QString &))<br />    Q_PRIVATE_SLOT(d_func(), void slotRegExpChanged(QtProperty *, const QRegExp &))<br />    Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QString &))<br />    Q_PRIVATE_SLOT(d_func(), void slotEditingFinished())<br />    Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))<br />};<br /><br /> <br /><br />qteditorfactory.cpp涓?br /><br />class QtLineEditFactoryPrivate : public EditorFactoryPrivate<QLineEdit><br />{<br />    QtLineEditFactory *q_ptr;<br />    Q_DECLARE_PUBLIC(QtLineEditFactory)<br />public:<br /><br />    void slotPropertyChanged(QtProperty *property, const QString &value);<br />    void slotRegExpChanged(QtProperty *property, const QRegExp &regExp);<br />    void slotSetValue(const QString &value);<br />    void slotEditingFinished();<br />};<br /><br />void QtLineEditFactoryPrivate::slotEditingFinished()<br />{<br />    QObject *object = q_ptr->sender();<br />    const QMap<QLineEdit *, QtProperty *>::ConstIterator ecend = m_editorToProperty.constEnd();<br />    for (QMap<QLineEdit *, QtProperty *>::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor)<br />        if (itEditor.key() == object) {<br />            QtProperty *property = itEditor.value();<br />            QtStringPropertyManager *manager = q_ptr->propertyManager(property);<br />            if (!manager)<br />                return;<br />            QString value = static_cast<QLineEdit*>(itEditor.key())->text();<br />            manager->setValue(property, value);<br />            return;<br />        }<br />}<br /><br />QWidget *QtLineEditFactory::createEditor(QtStringPropertyManager *manager,<br />        QtProperty *property, QWidget *parent)<br />{<br /><br />    QLineEdit *editor = d_ptr->createEditor(property, parent);<br />    QRegExp regExp = manager->regExp(property);<br />    if (regExp.isValid()) {<br />        QValidator *validator = new QRegExpValidator(regExp, editor);<br />        editor->setValidator(validator);<br />    }<br />    editor->setText(manager->value(property));<br /><br />    connect(editor, SIGNAL(editingFinished()),<br />                this, SLOT(slotEditingFinished()));<br />    connect(editor, SIGNAL(destroyed(QObject *)),<br />                this, SLOT(slotEditorDestroyed(QObject *)));<br />    return editor;<br />}<br /><br /> <br /><br />榪欐牱鏃㈠彲鍦ㄨ緭鍏ュ洖杞﹂敭,鎴栬呰緭鍏ユ澶卞幓鐒︾偣鍚庝駭鐢熶竴涓狾nValueChange浜嬩歡</div><br /> </div><img src ="http://m.shnenglu.com/zhonghua/aggbug/187479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhonghua/" target="_blank">綾崇背</a> 2012-08-17 13:52 <a href="http://m.shnenglu.com/zhonghua/archive/2012/08/17/187479.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍥介檯鍖栧蹇橈紙澶氫釜緲昏瘧鏂囦歡緇勫悎錛?/title><link>http://m.shnenglu.com/zhonghua/archive/2012/08/02/186044.html</link><dc:creator>綾崇背</dc:creator><author>綾崇背</author><pubDate>Thu, 02 Aug 2012 08:37:00 GMT</pubDate><guid>http://m.shnenglu.com/zhonghua/archive/2012/08/02/186044.html</guid><wfw:comment>http://m.shnenglu.com/zhonghua/comments/186044.html</wfw:comment><comments>http://m.shnenglu.com/zhonghua/archive/2012/08/02/186044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhonghua/comments/commentRss/186044.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhonghua/services/trackbacks/186044.html</trackback:ping><description><![CDATA[<div>lrelease  zhu_zh.ts 1_zh.ts -qm aaa.qm</div><img src ="http://m.shnenglu.com/zhonghua/aggbug/186044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhonghua/" target="_blank">綾崇背</a> 2012-08-02 16:37 <a href="http://m.shnenglu.com/zhonghua/archive/2012/08/02/186044.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>杞?QT StyleSheet 涓涓緥瀛?/title><link>http://m.shnenglu.com/zhonghua/archive/2012/07/20/184345.html</link><dc:creator>綾崇背</dc:creator><author>綾崇背</author><pubDate>Fri, 20 Jul 2012 06:14:00 GMT</pubDate><guid>http://m.shnenglu.com/zhonghua/archive/2012/07/20/184345.html</guid><wfw:comment>http://m.shnenglu.com/zhonghua/comments/184345.html</wfw:comment><comments>http://m.shnenglu.com/zhonghua/archive/2012/07/20/184345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhonghua/comments/commentRss/184345.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhonghua/services/trackbacks/184345.html</trackback:ping><description><![CDATA[<div>浣跨敤setStyleSheet鏉ヨ緗浘褰㈢晫闈㈢殑澶栬錛?br /> QT Style Sheets鏄竴涓緢鏈夊埄鐨勫伐鍏鳳紝鍏佽瀹氬埗紿楀彛鐨勫瑙傦紝<br /> 姝ゅ榪樺彲浠ョ敤瀛愮被QStyle鏉ュ畬鎴愶紝浠栫殑璇硶寰堝ぇ姣旈噸鏉ユ簮浜巋tml鐨凜SS錛屼絾鏄傜敤浜庣獥鍙?br /> <strong>姒傛嫭錛?/strong><br /> Style Sheets鏄枃瀛楁х殑璁懼畾錛屽浜庢暣涓簲鐢ㄧ▼搴忓彲浠ヤ嬌鐢≦Application::setStyleSheet() 鎴栬呭搴斾竴涓獥鍙e彲浠ヤ嬌鐢≦Widget::setStyleSheet()錛屽鏋滃ソ鍑犱釜鏍峰紡琛ㄥ湪涓嶅悓鐨勫眰嬈′笂璁懼畾錛?br /> QT灝嗕細闆嗗悎鎵鏈夌殑鏍峰紡琛ㄦ潵璁懼畾澶栬錛岃繖縐頒綔綰т覆鑱?br /> 渚嬪錛氫笅闈㈢殑鏍峰紡琛ㄦ寚瀹氭墍鏈夌殑QLineEdit搴旇鐢ㄩ粍鑹蹭綔涓轟粬浠殑鑳屾櫙棰滆壊錛屾墍鏈夌殑鏍稿妗嗗簲璇ョ敤綰㈣壊浣滀負浠栦滑鐨勬枃鏈鑹?br /> <div><div class="hvzpftn" id="code0"><ol><li>QLineEdit { background: yellow }<br /> </li><li>QCheckBox { color: red }</li></ol></div><em>澶嶅埗浠g爜</em></div>瀵逛簬榪欑瀹氬埗錛屾牱寮忚〃姣攑alette璋冭壊鏉挎洿寮哄ぇ錛屼緥濡備嬌鐢≦Palette::Button role鏉ヨ瀹氫竴涓寜閽負綰㈣壊鍙兘寮曡搗鍗遍櫓<br /> 瀵逛簬鍗曠嫭浣跨敤QPalette寰堥毦瀹屾垚鐨勫畾鍒訛紝鏍峰紡琛ㄥ彲浠ユ寚瀹氭牱寮忚〃浣滅敤浜庡綋鍓嶇獥鍙f牱寮忛《閮紝榪欐剰鍛寵繖搴旂敤紼嬪簭璁茬湅璧鋒潵灝藉彲鑳界殑鑷劧錛屼絾鏄換浣曟牱寮忚〃緋葷粺 鍙傛暟搴旇鑰冭檻錛屼笉鍍廞Palette閭f牱錛屾牱寮忚〃鎻愪緵媯鏌ワ紝濡傛灉浣犺瀹氫簡涓涓寜閽殑鑳屾櫙棰滆壊涓虹孩鑹詫紝浣犲簲璇ョ‘瀹氬湪鎵鏈夌殑騫沖彴鎸夐挳灝嗕細鏈変竴涓孩鑹茬殑鑳屾櫙錛岄櫎 姝わ紝Qt Designer鎻愪緵鏍峰紡琛ㄩ泦鎴愮幆澧冿紝浣垮緱鍦ㄤ笉鍚岀殑紿楀彛鏍峰紡涓洿瀹規槗鐪嬪埌鏍峰紡琛ㄧ殑鏁堟灉<br /> 姝ゅ錛屾牱寮忚〃鍙互鐢ㄦ潵涓轟綘鐨勫簲鐢ㄧ▼搴忔彁渚涗竴涓嚭浼楃殑澶栬錛屼笉闇瑕佷嬌鐢ㄥ瓙綾籕Style,渚嬪錛屽彲浠ユ寚瀹氫換鎰忕殑鍥劇墖涓哄崟閫夋寜閽拰鏍稿鎸夐挳錛屾潵浣垮畠浠嚭浼楋紝浣?鐢ㄨ繖涓妧鏈紝涔熷彲浠ヨ幏寰楄緟鍔╃殑瀹氬埗錛岃繖灝嗕嬌鐢ㄥ嚑涓瓙綾伙紝渚嬪鎸囧畾style hint(鏍峰紡鏆楃ず),鍙互鍙傜湅渚嬪瓙 Style Sheet銆?br /> 褰撴牱寮忚〃鏈夋晥鏃跺欙紝浣跨敤QWidget::style()鍙互榪斿洖QStyle,<br /> 鏍峰紡琛ㄨ娉曪細<br /> 鏍峰紡琛ㄨ娉曞熀鏈拰HTML CSS璇硶涓鑷淬?br /> 鏍峰紡琛ㄥ寘鍚簡鏍峰紡瑙勫垯搴忓垪錛屾牱寮忚鍒欐湁涓涓?lt;selector>鍜?lt;declaration>緇勬垚錛?lt;selector>鎸囧畾鍝簺紿楀彛灝嗕細琚繖浜涜鍒欏獎鍝嶏紝<declaration>鎸囧畾鍝簺灞炴у皢浼氳璁懼畾鍦ㄧ獥鍙d笂錛屼緥濡?br /> QPushButton{color:red}<br /> 鍦ㄤ笂闈㈢殑錛岃鍒欎腑錛孮PushButton鏄?lt;selector>錛寋color:red}鏄?lt;declaration>錛岃繖涓鍒欐寚瀹歈PushButton鍜屼粬鐨勫瓙綾誨皢浣跨敤綰㈣壊浣滀負鍓嶆櫙棰滆壊錛屽氨鏄瓧浣撻鑹詫紝騫朵笖瀵瑰ぇ灝忓啓娌℃湁鍒嗗埆錛屽浜?br /> color錛孋oloR,COLOR鏄竴鏍風殑銆?br /> 鍑犱釜<selector>鍙互鍚屾椂琚垪鍑猴紝浣跨敤閫楀彿","鏉ュ垎寮鍚勪釜<selector>錛屼緥濡傦細<br /> QPushButton, QLineEdit, QComboBox { color: red }<br /> <declaration>閮ㄥ垎鏄竴瀵?灞炴э細鍊?nbsp; 瀵癸紝鐢▄}鏉ユ嫭璧鋒潵錛屼嬌鐢ㄥ垎鍙鋒潵鍒嗗紑鍚勪釜灞炴э紝渚嬪<br /> QPushButton { color: red; background-color: white }<br /> 鍙互鍙傜湅Qt Style Sheets Reference鏉ユ煡鐪嬮儴浠朵互鍙婃牱寮忚〃鐨勫睘鎬у垪琛?br /> 鍏充簬鏍峰紡琛ㄧ殑綰ц仈灞炴?br /> 鐪嬩笅闈唬鐮佺殑涓嶅悓<br /> <div><div class="hvzpftn" id="code1"><ol><li>btn1->setStyleSheet("QPushButton{color:red}"); //璁懼畾鍓嶆櫙棰滆壊錛屽氨鏄瓧浣撻鑹?br /> </li><li> btn1->setStyleSheet("QPushButton{background:yellow}"); //璁懼畾鑳屾櫙棰滆壊涓虹孩鑹?/li></ol></div><em>澶嶅埗浠g爜</em></div>鍜?br /> <div><div class="hvzpftn" id="code2"><ol><li>btn1->setStyleSheet("QPushButton{color:red錛沚ackground:yellow}");</li></ol></div><em>澶嶅埗浠g爜</em></div>絎竴涓唬鐮佸彧鑳芥樉紺洪粍鑹茶儗鏅紝絎簩涓‘瀹炵孩鑹插瓧浣擄紝榛勮壊鑳屾櫙錛?br /> 鎵浠ュ綋璁懼畾涓涓儴浠舵椂鍊欙紝瑕佸湪鍚屼竴涓?gt;setStyleSheet()涓畬鍏ㄥ啓鍑烘潵銆?br /> 婧愪唬鐮佺ず渚嬶細<br /> <div class="hvzpftn" id="code3"><ol><li>Dialog::Dialog(QWidget *parent) :<br /> </li><li>    QDialog(parent),<br /> </li><li>    ui(new Ui::Dialog)<br /> </li><li>{<br /> </li><li>    ui->setupUi(this);<br /> </li><li>    this->setWindowFlags(this->windowFlags()&Qt::WindowMaximizeButtonHint&Qt::WindowMinimizeButtonHint); //涓哄璇濇娣誨姞涓婃渶澶у寲鍜屾渶灝忓寲鎸夐挳<br /> </li><li>//    layout=new QBoxLayout(this);<br /> </li><li>    layout1=new QGridLayout(this);<br /> </li><li>    btn1=new QPushButton(this);<br /> </li><li>    btn1->setStyleSheet("QPushButton{color:red;background:yellow}"); //璁懼畾鍓嶆櫙棰滆壊錛屽氨鏄瓧浣撻鑹?br /> </li><li>//    btn1->setStyleSheet("QPushButton{background:yellow}");<br /> </li><li>    btn1->setText("Button1");<br /> </li><li>    btn2=new QPushButton(this);<br /> </li><li>    btn2->setStyleSheet("QPushButton{color:red;background-color:#c89b64}"); //浣跨敤rgb鏉ヨ瀹氳儗鏅鑹?br /> </li><li>    btn2->setText("Button2");<br /> </li><li>     btn3=new QPushButton(this);<br /> </li><li>     btn3->setStyleSheet("QPushButton{background-image:url(image/1.png);background-repeat: repeat-xy;background-position: center;background-attachment: fixed;background-attachment: fixed;background-attachment: fixed;;background-clip: padding}");<br /> </li><li>     //璁懼畾鎸夐挳鐨勮儗鏅浘鐗?background-repeat鍙互璁懼畾鑳屾櫙鍥劇墖鐨勯噸澶嶈鍒欙紝榪欓噷璁懼畾浠呭湪xy鏂瑰悜閮介噸澶嶏紝鎵浠ュ浘鐗囦細琚噸澶嶄竴嬈?br /> </li><li>     //background-position鐢ㄦ潵璁懼畾鍥劇墖鐨勪綅緗紝鏄乏(left)榪樻槸鍙?right)錛岃繕鏄湪涓棿(center),鏄笂(top)榪樻槸搴曢儴(bottom)<br /> </li><li>     //background-attachment鐢ㄦ潵榪欏畾鑳屾櫙鍥劇墖鏄惁鍗峰姩鎴栬呭拰紿楀彛澶у皬鐩稿尮閰嶏紝榛樿鏄嵎鍔ㄧ殑<br /> </li><li>     btn3->setText("Button3");<br /> </li><li>     btn4=new QPushButton(this);<br /> </li><li>     btn4->setStyleSheet("QPushButton{border: 3px solid red;border-radius:8px}"); //璁懼畾杈規瀹藉害浠ュ強棰滆壊<br /> </li><li>     //鍙互浣跨敤border-top錛宐order-right錛宐order-bottom錛宐order-left鍒嗗埆璁懼畾鎸夐挳鐨勪笂涓嬪乏鍙寵竟妗嗭紝<br /> </li><li>     //鍚屾牱鏈塨order-left-color, border-left-style, border-left-width.絳夊垎鍒潵璁懼畾浠栦滑鐨勯鑹詫紝鏍峰紡鍜屽搴?br /> </li><li>     //border-image鐢ㄦ潵璁懼畾杈規鐨勮儗鏅浘鐗囥?br /> </li><li>     //border-radius鐢ㄦ潵璁懼畾杈規鐨勫姬搴︺傚彲浠ヨ瀹氬渾瑙掔殑鎸夐挳<br /> </li><li>     btn4->setText("Button4");<br /> </li><li>     //瀛椾綋璁懼畾<br /> </li><li>     //font-family鏉ヨ瀹氬瓧浣撴墍灞炲鏃忥紝<br /> </li><li>     //font-size鏉ヨ瀹氬瓧浣撳ぇ灝?br /> </li><li>     //font-style鏉ヨ瀹氬瓧浣撴牱寮?br /> </li><li>     //font-weight鏉ヨ瀹氬瓧浣撴繁嫻?br /> </li><li>     //height鐢ㄦ潵璁懼畾鍏墮珮浣?br /> </li><li>     //selection-color鐢ㄦ潵璁懼畾閫変腑鏃跺欑殑棰滆壊<br /> </li><li>     edit1=new QLineEdit(this);<br /> </li><li>     edit1->setStyleSheet("QLineEdit{font: bold italic large \"Times New Roman\";font-size:25px;color:#3764ff;height:50px;border:4px solid #9bc821;border-radius:15px;selection-color:pink}");<br /> </li><li>     //鐖剁獥鍙g殑璁懼畾<br /> </li><li>     //icon-size鏉ヨ瀹氬浘鐗囧ぇ灝?br /> </li><li>     this->setWindowIcon(QIcon("image/1.png"));<br /> </li><li>      this->setStyleSheet("QWidget{background:write url(image/2.png);icon-size:20px 5px}");  //璁懼畾鏁翠釜瀵硅瘽妗嗙殑鑳屾櫙棰滆壊<br /> </li><li>//      this->setStyleSheet("QWidget{icon-size:20px 5px}");<br /> </li><li>    layout1->addWidget(btn1,0,0);<br /> </li><li>    layout1->addWidget(btn2,0,1);<br /> </li><li>    layout1->addWidget(btn3,1,0);<br /> </li><li>    layout1->addWidget(btn4,1,1);<br /> </li><li>     layout1->addWidget(edit1,2,0);<br /> </li><li>}</li></ol></div></div><img src ="http://m.shnenglu.com/zhonghua/aggbug/184345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhonghua/" target="_blank">綾崇背</a> 2012-07-20 14:14 <a href="http://m.shnenglu.com/zhonghua/archive/2012/07/20/184345.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title> QTreeview 閫変腑鍚?branch鍖哄煙鑳屾櫙涓洪珮浜殑姍欒壊. http://m.shnenglu.com/zhonghua/archive/2012/07/20/184321.html綾崇背綾崇背Fri, 20 Jul 2012 04:13:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/07/20/184321.htmlhttp://m.shnenglu.com/zhonghua/comments/184321.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/07/20/184321.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/184321.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/184321.html

//濡傛灉璁劇疆 show-decoration-selected:1浼氬鑷寸偣鍑婚変腑鍚?鍓嶉潰branch鍖哄煙鑳屾櫙涓洪珮浜殑姍欒壊.

    ui->treeView->setVerticalScrollBarPolicy ( Qt::ScrollBarAlwaysOff ) ;

              ui->treeView->setStyleSheet(   \
                      " QTreeView { \
                                    show-decoration-selected: 0; \
                                } \
                                \
                                QTreeView::item { \
                                    show-decoration-selected: 0; \
                                    background-image:url(image/list_bg02.png); \
                                } \
                                QTreeView::item:selected{ \
                                    background-image:url(image/list_bg01a.png); \
                                }  \
             QTreeView::branch { \
                      selection-color: transparent; \
              } \
              QTreeView::branch:closed:has-children:has-siblings { \
                      image: url(image/icon_add.png); \
              } \
               \
              QTreeView::branch:has-children:!has-siblings:closed { \
                      image: url(image/icon_add.png); \
              } \
               \
              QTreeView::branch:open:has-children:has-siblings { \
                      image: url(image/icon_reduce.png); \
              } \
\
              QTreeView::branch:open:has-children:!has-siblings { \
                      image: url(image/icon_reduce.png); \
              }");

 


    ui->treeView->setAttribute(Qt::WA_MacShowFocusRect, 0);
    ui->treeView->setFocusPolicy(Qt::NoFocus);
    ui->treeView->setEditTriggers(QAbstractItemView::NoEditTriggers);

綾崇背 2012-07-20 12:13 鍙戣〃璇勮
]]>
杞? QT鎺у埗閫変腑item鐨勬枃瀛楅鑹?HighlightedText) http://m.shnenglu.com/zhonghua/archive/2012/07/20/184320.html綾崇背綾崇背Fri, 20 Jul 2012 04:12:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/07/20/184320.htmlhttp://m.shnenglu.com/zhonghua/comments/184320.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/07/20/184320.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/184320.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/184320.html

  榛樿鐨勬儏鍐典笅錛孮TableView,QTableWidget絳夋帶浠訛紝褰搃tem閫変腑鍚庡叾鑳屾櫙鑹蹭負钃濊壊鐨勶紝鏂囧瓧棰滆壊(鍓嶆櫙鑹?涓虹櫧鑹茬殑錛屽鍥撅細

        榛樿鐨刬tem閫変腑鍚庣殑鑳屾櫙鑹?鐧借壊)

 

    濡傛灉鎴戜滑鎯沖姩鎬佺殑鏇存敼item鐨勫墠鏅壊錛堜緥濡傚煎ぇ浜庨浂鏄劇ず綰㈣壊錛屽皬浜庨浂鏄劇ず緇胯壊錛夛紝騫朵笖閫変腑鍚庢枃瀛楅鑹蹭笉鍙?榪欎釜鏄垜鎯沖疄鐜扮殑錛屽叾瀹炲氨鏄ā浠夸竴鑸殑鑲$エ浠鋒牸鍥捐〃)錛屾庝箞鍔炲憿錛?棣栧厛鍦ㄦ坊鍔犳垨鑰呬慨鏀筰tem鐨勬椂鍊欙紝鍙互浣跨敤:

 model->item(row, column)->setForeground(QBrush(QColor(255, 0, 0)));  //鎶婅〃鏍肩殑item鐨勬枃瀛楅鑹茶緗負綰㈣壊

浣嗘槸鍙繖鏍瘋繕鏄笉澶熺殑錛岃繖鏍峰彧鑳戒繚璇佸湪涓嶉変腑鐨勬儏鍐典笅鏄劇ず涓虹孩鑹詫紝 鑻ヤ笉鍋氬叾浠栬緗紝閫変腑鍚巌tem鐨勯鑹茬収鏍峰彉鎴愮櫧鑹茬殑浜嗐?

 

    瀵規鎴戞壘鍒頒簡浣跨敤浠g悊鐨勬柟娉曪紝浣塊変腑鍚庣殑鏂囧瓧棰滆壊鍜岄変腑鍓嶇殑鏂囧瓧棰滆壊涓鑷達紙涔熷彲浠ョ伒媧諱慨鏀癸級錛屾晥鏋滃涓嬪浘錛屼唬鐮侀殢鍚庛?/p>

 

       //榛勮壊鐨勯偅琛屼負閫変腑琛?/span>

 

 

   

  1. //濮旀墭(浠g悊)   
  2. class ItemDelegate : public QItemDelegate  
  3. {  
  4.     Q_OBJECT  
  5. public:  
  6.     ItemDelegate()  
  7.     {  
  8.     }  
  9.     void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const  
  10.     {  
  11.         QStyleOptionViewItem  viewOption(option);  
  12.         //楂樹寒鏄劇ず涓庢櫘閫氭樉紺烘椂鐨勫墠鏅壊涓鑷達紙鍗抽変腑琛屽拰涓洪変腑鏃跺欑殑鏂囧瓧棰滆壊涓鏍鳳級   
  13.         viewOption.palette.setColor(QPalette::HighlightedText, index.data(Qt::ForegroundRole).value<QColor>());  
  14.         QItemDelegate::paint(painter, viewOption, index);  
  15.     }  
  16. };  
  1. //濮旀墭(浠g悊)  
  2. class ItemDelegate : public QItemDelegate  
  3. {  
  4.     Q_OBJECT  
  5. public:  
  6.     ItemDelegate()  
  7.     {  
  8.     }  
  9.     void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const  
  10.     {  
  11.         QStyleOptionViewItem  viewOption(option);  
  12.         //楂樹寒鏄劇ず涓庢櫘閫氭樉紺烘椂鐨勫墠鏅壊涓鑷達紙鍗抽変腑琛屽拰涓洪変腑鏃跺欑殑鏂囧瓧棰滆壊涓鏍鳳級  
  13.         viewOption.palette.setColor(QPalette::HighlightedText, index.data(Qt::ForegroundRole).value<QColor>());  
  14.         QItemDelegate::paint(painter, viewOption, index);  
  15.     }  
  16. };  

 

   

  1. view = new QTableView;  
  2. model = new QStandardItemModel;  
  3. view->setModel(model);  
  4. view->setItemDelegate(new ItemDelegate);  
  1. view = new QTableView;  
  2. model = new QStandardItemModel;  
  3. view->setModel(model);  
  4. view->setItemDelegate(new ItemDelegate);  

 

  

  1. if (strList[2].toDouble() >= strList[3].toDouble())  
  2.     model->item(row, 2)->setForeground(QBrush(QColor(255, 0, 0)));  
  3. else  
  4.     model->item(row, 2)->setForeground(QBrush(QColor(0, 127, 0)));  
  5. if (strList[4].toDouble() >= strList[3].toDouble())  
  6.     model->item(row, 4)->setForeground(QBrush(QColor(255, 0, 0)));  
  7. else  
  8.     model->item(row, 4)->setForeground(QBrush(QColor(0, 127, 0)));  
  1. if (strList[2].toDouble() >= strList[3].toDouble())  
  2.     model->item(row, 2)->setForeground(QBrush(QColor(255, 0, 0)));  
  3. else  
  4.     model->item(row, 2)->setForeground(QBrush(QColor(0, 127, 0)));  
  5. if (strList[4].toDouble() >= strList[3].toDouble())  
  6.     model->item(row, 4)->setForeground(QBrush(QColor(255, 0, 0)));  
  7. else  
  8.     model->item(row, 4)->setForeground(QBrush(QColor(0, 127, 0))); 


綾崇背 2012-07-20 12:12 鍙戣〃璇勮
]]>
QTreeView 琛岄珮浜?,鍥炬爣 http://m.shnenglu.com/zhonghua/archive/2012/07/20/184316.html綾崇背綾崇背Fri, 20 Jul 2012 03:23:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/07/20/184316.htmlhttp://m.shnenglu.com/zhonghua/comments/184316.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/07/20/184316.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/184316.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/184316.html   // 鏍峰紡

    ui->treeView->setStyleSheet(

            "QTreeView::item{height: 60px;show-decoration-selected: 0;background-image:url(image/list_content_bg.png);}"

            "QTreeView::item:selected{background-image:url(image/list_select_bg.png);}"

            );

 

//璁劇疆鍥炬爣

QVariant data(const QModelIndex &index, int role)
{

if (!index.isValid())
    return QVariant();

if(role == Qt::UserRole)
{

}
 if(role ==Qt::BackgroundRole)
{
    QImage  image("image/list_bg02.png");
    return QBrush(image);
}

if(index.column()==0)
{

 

    if(role == Qt::DecorationRole)
    {
        QImage image;
        image.load("image/icon_user.png");
        return image;//QIcon("image/icon_user.png");
    }

}

鍥炬爣澶у皬  :灞炴?iconSize

ui->treeView->setIconSize(QSize(32,32));

綾崇背 2012-07-20 11:23 鍙戣〃璇勮
]]>
杞?qt4 StyleSheet鐨勬葷粨http://m.shnenglu.com/zhonghua/archive/2012/07/09/182430.html綾崇背綾崇背Mon, 09 Jul 2012 09:18:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/07/09/182430.htmlhttp://m.shnenglu.com/zhonghua/comments/182430.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/07/09/182430.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/182430.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/182430.html
QApplication::setStyleSheet(QString);
QWidget::setStyleSheet(QString);

1. 紼嬪簭綰х殑澶栬錛氾紙浣滅敤浜庢暣涓▼搴忕殑鍣ㄤ歡錛?br />濡傦細

QLineEdit { background: yellow }
QCheckBox { color: red }

2. 鍣ㄤ歡綰х殑澶栬錛氾紙浣滅敤浜庢湰鍣ㄤ歡鍙婂叾瀛愬櫒浠訛級
濡傦細

textViewer->
setStyleSheet("background-color: #FFFFBB;"
                "color: #000099;"
                "margin: 10px;"
                "padding: 5px;"
                "padding-left: 15px;"
                "padding-right: 15px;"
                "border-radius: 5px;" // 鍦嗚杈規(鍙敤IE鐨勪漢灝變笉鐭ラ亾浜嗗惂:D)
                "border: 3px solid #abc;");
 
 

"background-color: #FFFFBB;"
                "color: #000099;"
                "margin: 10px;"
                "padding: 5px;"
                "padding-left: 15px;"
                "padding-right: 15px;"
                "border-radius: 5px;" // 鍦嗚杈規(鍙敤IE鐨勪漢灝變笉鐭ラ亾浜嗗惂:D)
                "border: 3px solid #abc;"
 
 
榪欏彧鏄熀紜錛屽叾浠栫殑鍙牴鎹疄闄呮儏鍐碉紝鎸夊府鍔゛sstiant涓婄殑璇存槑鍐?/div>


綾崇背 2012-07-09 17:18 鍙戣〃璇勮
]]>
杞?QScopedPointer浠嬬粛http://m.shnenglu.com/zhonghua/archive/2012/07/03/181227.html綾崇背綾崇背Tue, 03 Jul 2012 02:19:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/07/03/181227.htmlhttp://m.shnenglu.com/zhonghua/comments/181227.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/07/03/181227.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/181227.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/181227.html

QScopedPointer浠嬬粛

QScopedPointer

灝卞垎閰嶇┖闂村拰閲婃斁絀洪棿鑰岃█錛孮t鐨勫鐞嗘湁鐐逛箯鍛籌紝瑕佷笉鐒舵槸閫氳繃闅愬紡鍏變韓鐨刢ontainers錛岃涓嶇劧灝辨槸閫氳繃QObject鐨勭埗瀛愬叧緋繪ā寮忋備絾鎬繪湁浜涙椂鍊欐垜浠渶瑕佸湪鍫嗕笂鍒嗛厤涓浜涚┖闂達紝闂鏉ヤ簡錛屾垜浠鍦ㄥ摢閲宒elete瀹冿紝濡備綍鑳藉紜繚涓嶄駭鐢熷唴瀛樻硠闇插憿錛?
QScopedPointer灝變負浜嗚В鍐寵繖涓棶棰樿岀敓鐨勶紝鍝堝搱 QScopedPointer鍦ㄥ叾鐢熷懡鏈熺粨鏉熷悗浼氳嚜鍔ㄥ垹闄ゅ畠鎵鎸囩殑瀵硅薄銆?

  1. void foo()
  2. {
  3. QScopedPointer<int> i(new int(42));
  4.     …
  5.     if (someCondition)
  6.         return; // 鎴戜滑鍦ㄥ爢涓婃瀯閫犵殑鏁存暟榪欐椂浼氬湪榪欓噷鍒犻櫎鎴栬呮槸鍦ㄤ笅闈?/li>
  7.     …
  8. } // … 涔熷彲鑳藉湪榪欓噷

澶嶅埗浠g爜

榪欐牱灝卞彲浠ョ‘淇濇垜浠湪鍫嗕笂涓烘暣鏁?2鍒嗛厤鐨勭┖闂翠笉浼氫駭鐢熷唴瀛樻硠闇詫紝鍚屾椂鎴戜滑涔熶笉鐢ㄦ墜鍔╠elete瀹冿紝鍝堝搱銆?
閭f垜浠浣曡闂甉ScopedPointer 鎵鎸囩殑瀵硅薄鍛紵QScopedPointer閲嶆柊瀹炵幇浜唎perator* 鍜宱perator->錛屽洜姝ゆ垜浠彲浠ュ儚涓嬮潰榪欐牱浣跨敤瀹冿細

  1. QScopedPointer<int> i(new int(42));
  2.     *i = 43;

澶嶅埗浠g爜

鏈変簺榪愮畻絎︽槸涓嶆敮鎸佺殑錛屽璧嬪艱繍綆楃錛?

  1. QScopedPointer<int> i(new int(42));
  2.     i = new int(43); // 緙栬瘧涓嶉氳繃
  3.     i.reset(new int(43)); // 姝g‘

澶嶅埗浠g爜

operator T*()涔熸槸娌℃湁鐨勶細

  1. int *foo()
  2. {
  3. QScopedPointer<int> i(new int(42));
  4.     …
  5.     return i; // thankfully, this does not compile.
  6. }

澶嶅埗浠g爜

鐪嬪埌閿欒娌★紵鍦ㄤ笂闈㈢殑浠g爜涓竴鏃︽垜浠瑀eturn錛屾垜浠瀯閫犵殑瀵硅薄灝嗚鍒犻櫎鍥犱負i鐨勭敓鍛芥湡宸茬粡緇撴潫錛屾垜浠皢浼氳繑鍥炰竴涓噹鎸囬拡錛岃繖鍙兘浼氬鑷村穿婧冦傚鏋滅湡瑕佽繑鍥炴垜浠簲璇ュ儚涓嬮潰榪欐牱錛?

  1. int *foo()
  2. {
  3. QScopedPointer<int> i(new int(42));
  4.     …
  5.     if (someError)
  6.         return 0; // our integer is deleted here
  7.     return i.take(); // from now on, our heap object is on its own.
  8. }

澶嶅埗浠g爜

閫氳繃璋冪敤take()鏂規硶錛屾垜浠憡璇塓ScopedPointer瀹冪殑宸ヤ綔宸茬粡鍋氬畬錛岀幇鍦ㄧ敱鎴戜滑鏉ユ帴綆″湪鍫嗕笂鍒嗛厤瀵硅薄鐨勬墍鏈夋潈錛屽搱鍝?img alt="" src="http://www.thisisqt.com/forum/images/smilies/default/lol.gif" border="0" />
涓婇潰鐨勫彧鏄拡瀵筺ew鑰岃█鐨勶紝閭d箞濡傛灉鏄痬alloc鎴栬卭perator new[]鏋勯犳暟緇勫憿錛熻繖閲屾垜浠渶瑕佷嬌鐢≦ScopedPointer鐨勭浜屼釜鍙傛暟錛?

  1. QScopedPointer<int, QScopedPointerPodDeleter> pod(static_cast<int *>(malloc(sizeof int)));

澶嶅埗浠g爜

浣哘ScopedPointer鐢熷懡鏈熺粨鏉熷悗QScopedPointerPodDeleter (pod 鏄?“plain old data”鐨勭緝鍐? 浼氳皟鐢╢ree鏉ラ噴鏀炬垜浠垎閰嶇殑絀洪棿銆?
涓轟簡鏂逛究鎴戜滑鏈変竴涓笓闂ㄩ拡瀵規暟緇勭殑綾伙紝QScopedArrayPointer錛屽湪鍏剁敓鍛芥湡緇撴潫鍚庝細鑷姩璋冪敤delete[]鏂規硶錛?

  1. void foo()
  2. {
  3.     QScopedArrayPointer<int> i(new int[10]);
  4.     i[2] = 42;
  5.     …
  6.     return; // our integer array is now deleted using delete[]
  7. }

澶嶅埗浠g爜

娉ㄦ剰濡傛灉浣犳湁涓涓紩鐢ㄨ鏁扮殑瀵硅薄錛屽彲浠ヤ嬌鐢≦ExplicitlySharedDataPointer鏉ョ‘淇濆綋鍏跺紩鐢ㄨ鏁頒負0鏃舵紜垹闄ゃ?
鍦?Qt鐨凷60鍒嗘敮涓紝QScopedPointe 鍜孮ExplicitlySharedDataPointer宸茬粡寰楀埌浜嗗箍娉涚殑浣跨敤銆傜浉淇′笉涔呭氨鍙互鍔犲叆Qt鐨勬誨垎鏀腑銆傞氳繃浣跨敤Qt鐨勮繖浜涙櫤鑳芥寚閽堬紝鎴?浠彲浠ヨ鎴戜滑鐨勭▼搴忔洿鏄撹鍚屾椂涔熶笉鐢ㄨ繃浜庢媴蹇冿紝鍥犱負榪欎簺鏂規硶閮芥槸inline鍐呰仈鐨勩?/p>

 

 

緇忓父榪欎箞鐢?/p>

class MyPrivateClass; // forward declare MyPrivateClass

class MyClass
{
private:
    QScopedPointer<MyPrivateClass> privatePtr; // QScopedPointer to forward declared class

public:
    MyClass(); // OK
    inline ~MyClass() {} // VIOLATION - Destructor must not be inline

private:
    Q_DISABLE_COPY(MyClass) // OK - copy constructor and assignment operators
                             // are now disabled, so the compiler won't implicitely
                             // generate them.
};



綾崇背 2012-07-03 10:19 鍙戣〃璇勮
]]>
甯哥敤姝e垯http://m.shnenglu.com/zhonghua/archive/2012/06/21/179588.html綾崇背綾崇背Thu, 21 Jun 2012 02:55:00 GMThttp://m.shnenglu.com/zhonghua/archive/2012/06/21/179588.htmlhttp://m.shnenglu.com/zhonghua/comments/179588.htmlhttp://m.shnenglu.com/zhonghua/archive/2012/06/21/179588.html#Feedback0http://m.shnenglu.com/zhonghua/comments/commentRss/179588.htmlhttp://m.shnenglu.com/zhonghua/services/trackbacks/179588.html璁劇疆姝e垯琛ㄨ揪寮?
綾諱技涓嬮潰鐨?br />QRegExp
榪欓噷鐨勭敤娉曞氨鏄敤鏉ユ嫻婹String絳夊瓧絎︿覆閿欒鐨?渚嬪鏂囦歡鍚嶉噷闈㈡渶濂藉氨涓嶅嚭鐜?lt;>|/\:絳?鎵浠ュ彲浠ュ涓嬪畾涔塓RegExp rx("[a-zA-Z0-9\-\\\_]{25}"); 25灝辨槸鎵杈撳叆鐨勫瓧絎︿覆涓暟!a-z褰撶劧灝辨槸a-z,浣犱篃鍙互abcdefghijklm....絳夌瓑.\- 灝辨槸-

濂戒簡,鐜板湪鍙互鎶婅繖涓猺x緇戝叆QRegExpValidator.

QRegExpValidator *pRevalidotor = new QRegExpValidator(regExp, this);

緇戝叆lineEdit :

pEditWell->setValidator(new QRegExpValidator(regExp, this));

甯哥敤鐨?
"^\d+$"銆銆//闈炶礋鏁存暟錛堟鏁存暟 + 0錛?<br>

"^[0-9]*[1-9][0-9]*$"銆銆//姝f暣鏁?<br>

"^((-\d+)|(0+))$"銆銆//闈炴鏁存暟錛堣礋鏁存暟 + 0錛?<br>

"^-[0-9]*[1-9][0-9]*$"銆銆//璐熸暣鏁?<br>

"^-?\d+$"銆銆銆銆//鏁存暟 <br>

"^\d+(\.\d+)?$"銆銆//闈炶礋嫻偣鏁幫紙姝f誕鐐規暟 + 0錛?<br>

"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"銆銆//姝f誕鐐規暟 <br>

"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"銆銆//闈炴嫻偣鏁幫紙璐熸誕鐐規暟 + 0錛?<br>

"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"銆銆//璐熸誕鐐規暟 <br>

"^(-?\d+)(\.\d+)?$"銆銆//嫻偣鏁?<br>

"^[A-Za-z]+$"銆銆//鐢?6涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?<br>

"^[A-Z]+$"銆銆//鐢?6涓嫳鏂囧瓧姣嶇殑澶у啓緇勬垚鐨勫瓧絎︿覆 <br>

"^[a-z]+$"銆銆//鐢?6涓嫳鏂囧瓧姣嶇殑灝忓啓緇勬垚鐨勫瓧絎︿覆 <br>

"^[A-Za-z0-9]+$"銆銆//鐢辨暟瀛楀拰26涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?<br>

"^\w+$"銆銆//鐢辨暟瀛椼?6涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎緇勬垚鐨勫瓧絎︿覆 <br>

"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"銆銆銆銆//email鍦板潃 <br>

"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"銆銆//url <br>

"^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$" // 騫?鏈?鏃?<br>

"^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$" // 鏈?鏃?騫?<br>

"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"    //Email <br>

"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"      //鐢佃瘽鍙風爜 <br>

"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"  

//IP鍦板潃</font></p>

<p><font size="3" color="#ff9900">^([0-9A-F]{2})(-[0-9A-F]{2}){5}$    //MAC鍦板潃鐨勬鍒欒〃杈懼紡 <br>

^[-+]?\d+(\.\d+)?$ //鍊肩被鍨嬫鍒欒〃杈懼紡</font></p>

</font><br>

<br>

<font size="3">QRegExp鏄疩t鐨勬鍒欒〃杈懼紡綾?<br>

Qt涓湁涓や釜涓嶅悓綾葷殑姝e垯琛ㄨ揪寮?<br>

絎竴綾諱負鍏冨瓧絎?瀹冭〃紺轟竴涓垨澶氫釜甯擱噺琛ㄨ揪寮?<br>

浠や竴綾諱負 杞箟瀛楃,瀹冧唬琛ㄤ竴涓壒孌婂瓧絎?<br>

<br>

涓.鍏冨瓧絎?lt;br>

. 鍖歸厤浠繪剰鍗曚釜瀛楃.渚嬪, 1.3 鍙兘鏄?. 鍚庨潰璺熶換鎰忓瓧絎?鍐嶈窡3<br>

^ 鍖歸厤瀛楃涓查. 渚嬪, ^12鍙兘鏄?23,浣嗕笉鑳芥槸312<br>

$ 閰嶅瓧絎︿覆灝? 渚嬪, 12$鍙互鏄?12, 褰撲笉鑳芥槸 123<br>

[] 鍖歸厤鎷彿鍐呰緭鍏ョ殑浠繪剰瀛楃.[123]鍙互涓?, 2 鎴?<br>

* 鍖歸厤浠繪剰鏁伴噺鐨勫墠瀵煎瓧絎? 渚嬪, 1*2鍙互涓轟換鎰忔暟閲忎釜1(鐢氳嚦娌℃湁), 鍚庨潰璺熶竴涓?<br>

+ 鍖歸厤鑷沖皯涓涓墠瀵煎瓧絎? 渚嬪, 1+2蹇呴』涓轟竴涓垨澶氫釜1, 鍚庤窡涓涓?<br>

? 鍖歸厤涓涓墠瀵煎瓧絎︽垨涓虹┖. 渚嬪 1?2鍙互涓?鎴栬繖12<br>

<br>

浜?緇熼厤妯″紡<br>

閫氳繃 QRegExp::setPatternSyntax(QRegExp::Wildcard);鍙互灝嗗厓瀛楃璁劇疆涓虹粺閰嶆ā寮?鍦ㄧ粺閰嶆ā寮忎笅,鍙湁3涓厓瀛?絎﹀彲浠ヤ嬌鐢?浠栦滑鐨勫姛鑳芥病鏈夊彉鍖?<br>

? 鍖歸厤浠繪剰鍗曚釜瀛楃, 渚嬪, 1?2鍙互涓?,鍚庨潰璺熶換鎰忓崟涓瓧絎? 鍐嶈窡2<br>

* 鍖歸厤浠繪剰涓涓瓧絎﹀簭鍒? 渚嬪, 1*2, 鍙互涓?, 鍚庨潰璺熶換鎰忔暟閲忕殑瀛楃, 鍐嶈窡涓涓?<br>

[] 鍖歸厤涓涓畾涔夌殑瀛楃闆嗗悎. 渚嬪, [a-zA-Z\.]鍙互鍖歸厤 a鍒皕涔嬮棿浠繪剰涓涓瓧絎﹀拰. [^a]鍖歸厤鍑哄皬鍐檃浠ュ鐨勫瓧絎?<br>

<br>

涓?杞箟搴忓垪<br>

\. 鍖歸厤"."<br>

\^ 鍖歸厤"^"<br>

\$ 鍖歸厤"$"<br>

\[ 鍖歸厤"["<br>

\] 鍖歸厤"]"<br>

\* 鍖歸厤"*"<br>

\+ 鍖歸厤"+"<br>

\? 鍖歸厤"?"<br>

\b 鍖歸厤鍝嶉搩瀛楃,浣胯綆楁満鍙戝嚭鍢熺殑涓澹?<br>

\t 鍒惰〃絎﹀彿<br>

\n 鎹㈣絎﹀彿<br>

\r 鍥炶濺絎﹂摢<br>

\s 浠繪剰絀烘牸<br>

\xnn 鍖歸厤16榪涘埗涓簄n鐨勫瓧絎?lt;br>

\0nn 鍖歸厤8榪涘埗鐨刵n瀛楃<br>

榪欎簺琛ㄨ揪寮忓潎浠寮濮? 涓嶤++鐨勮漿涔夊瓧絎︾浉鍚?鎵浠ヤ負浜嗗畾涔塓RegExp涓殑涓涓漿涔夊簭鍒?<br>

闇瑕佸湪鍓嶉潰娣誨姞涓や釜\\

綾崇背 2012-06-21 10:55 鍙戣〃璇勮
]]>
QT 瀹氭椂鍣ㄤ嬌鐢?/title><link>http://m.shnenglu.com/zhonghua/archive/2012/06/20/179477.html</link><dc:creator>綾崇背</dc:creator><author>綾崇背</author><pubDate>Wed, 20 Jun 2012 02:27:00 GMT</pubDate><guid>http://m.shnenglu.com/zhonghua/archive/2012/06/20/179477.html</guid><wfw:comment>http://m.shnenglu.com/zhonghua/comments/179477.html</wfw:comment><comments>http://m.shnenglu.com/zhonghua/archive/2012/06/20/179477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhonghua/comments/commentRss/179477.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhonghua/services/trackbacks/179477.html</trackback:ping><description><![CDATA[<div><pre>1.<div><pre> QTimer *timer = new QTimer( myObject );<br /> <a >connect</a>( timer, SIGNAL(<a >timeout</a>()), myObject, SLOT(timerDone()) );<br /> timer-><a >start</a>( 2000, TRUE ); // 2縐掑崟瑙﹀彂瀹氭椂鍣?/pre></div> QTimer *t = new QTimer( myObject ); <br /><a >connect</a>( t, SIGNAL(<a >timeout</a>()), SLOT(processOneThing()) );<br /> t-><a >start</a>( 2000, FALSE ); // 2縐掑崟瑙﹀彂瀹氭椂鍣?br /><br />2.void QTimer::singleShot ( int msec, <a >QObject</a> * receiver, const char * member )<tt> [闈欐乚</tt> <br />QTimer::<a >singleShot</a>( 10*60*1000, &a, SLOT(<a >quit</a>()) );<br /><br /></pre></div><img src ="http://m.shnenglu.com/zhonghua/aggbug/179477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhonghua/" target="_blank">綾崇背</a> 2012-06-20 10:27 <a href="http://m.shnenglu.com/zhonghua/archive/2012/06/20/179477.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>QT鍙抽敭鑿滃崟鐨勬坊鍔狅紙杞笘錛?/title><link>http://m.shnenglu.com/zhonghua/archive/2012/06/01/177082.html</link><dc:creator>綾崇背</dc:creator><author>綾崇背</author><pubDate>Fri, 01 Jun 2012 08:25:00 GMT</pubDate><guid>http://m.shnenglu.com/zhonghua/archive/2012/06/01/177082.html</guid><wfw:comment>http://m.shnenglu.com/zhonghua/comments/177082.html</wfw:comment><comments>http://m.shnenglu.com/zhonghua/archive/2012/06/01/177082.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhonghua/comments/commentRss/177082.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhonghua/services/trackbacks/177082.html</trackback:ping><description><![CDATA[<div><div class="hvzpftn" id="BlogArticleDetail" style="font-size:14px;"><p>QWidget鍙婂叾瀛愮被閮藉彲鏈夊彸閿彍鍗曪紝鍥犱負QWidget鏈変互涓嬩袱涓笌鍙抽敭鑿滃崟鏈夊叧鐨勫嚱鏁幫細</p> <p>Qt::ContextMenuPolicy contextMenuPolicy () const </p> <p>void setContextMenuPolicy ( Qt::ContextMenuPolicy policy ) </p> <p>Qt::ContextMenuPolicy鏋氫婦綾誨瀷鍖呮嫭錛歈t::DefaultContextMenu, Qt::NoContextMenu, Qt::PreventContextMenu, Qt::ActionsContextMenu, and Qt::CustomContextMenu銆?br /></p> <p>浣跨敤鏂瑰紡濡備笅錛?/p> <p><br /><strong>1錛夐粯璁ゆ槸Qt::DefaultContextMenu銆?/strong><br />瀹?鏄埄鐢ㄥ彸閿彍鍗曚簨浠禼ontextMenuEvent()鏉ュ鐞嗭紙which means the contextMenuEvent() handler is called)銆傚氨鏄閲嶅啓contextMenuEvent( QContextMenuEvent * event )鍑芥暟銆?/p> <p><br /><strong>2錛変嬌鐢≦t::CustomContextMenu銆?/strong><br />瀹冩槸鍙戝嚭QWidget::customContextMenuRequested淇″彿錛屾敞鎰忎粎浠呭彧鏄彂淇″彿錛屾剰鍛崇潃瑕佽嚜宸卞啓鏄劇ず鍙抽敭鑿滃崟鐨剆lot銆?br />榪欎釜淇″彿鏄疩Widget鍞竴涓庡彸閿彍鍗曟湁鍏崇殑淇″彿錛堜篃鏄嚜鏈夌殑鍞竴淇″彿錛夛紝鍚屾椂涔熸槸寰堝鏄撹蹇界暐鐨剆ignal錛?/p> <p>void customContextMenuRequested ( const QPoint & pos ) </p> <p>璇ヤ俊鍙風殑鍙戝嚭鏉′歡鏄細鐢ㄦ埛璇鋒眰contextMenu錛堝父瑙勫氨鏄紶鏍囧彸鍑誨暒錛変笖鍚屾椂琚嚮鐨剋idget鍏禼ontextMenuPolicy鍙堟槸Qt::CustomContextMenu銆?br />娉?鎰忥細pos鏄widget鎺ユ敹鍙抽敭鑿滃崟浜嬩歡鐨勪綅緗紝涓鑸槸鍦ㄨ閮ㄤ歡鐨勫潗鏍囩郴涓備絾鏄浜嶲AbstratScrollArea鍙婂叾瀛愮被渚嬪錛屾槸瀵瑰簲鐫鍏?瑙嗗彛viewport()鐨勫潗鏍囩郴銆傚甯哥敤鐨凲TableView銆丵HeaderView灝辨槸QAbstratScrollArea鐨勫瓙綾匯?br />鍥犱負浠呭彂淇″彿錛屾墍浠ラ渶鑷繁鍐欐樉紺哄彸閿彍鍗曠殑slot鏉ュ搷搴旓紝渚嬪涓涓〃鏍鹼紙QTableView綾誨瀷錛夎〃澶寸殑鏄劇ず鍙抽敭鑿滃崟妲斤細<br />datatable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu);<br />connect(datatable->horizontalHeader(), SIGNAL(customContextMenuRequested(const QPoint&)), <br />        this, SLOT(show_contextmenu(const QPoint&)));//this鏄痙atatable鎵鍦ㄧ獥鍙?br />QMenu *cmenu = NULL;<br />show_contextmenu(const QPoint& pos)<br />{<br />    if(cmenu)//淇濊瘉鍚屾椂鍙瓨鍦ㄤ竴涓猰enu錛屽強鏃墮噴鏀懼唴瀛?br />    {<br />        delete cmenu;<br />        cmenu = NULL;<br />    }<br />    QMenu cmenu = new QMenu(datatable->horizontalHeader());<br />    <br />    QAction *ascendSortAction = cmenu->addAction("鍗囧簭");<br />    QAction *descendSortAction = cmenu->addAction("闄嶅簭");<br />    QAction *filterAction = cmenu->addAction("榪囨護");<br />    QAction *reshowAction = cmenu->addAction("閲嶈澆");<br />    <br />    connect(ascendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_ascend()));<br />    connect(descendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_descend()));<br />    connect(filterAction, SIGNAL(triggered(bool)), this, SLOT(show_filter_dlg()));<br />    connect(reshowAction, SIGNAL(triggered(bool)), this, SLOT(reshow_data()));<br />    <br />    cmenu->exec(QCursor::pos());//鍦ㄥ綋鍓嶉紶鏍囦綅緗樉紺?br />    //cmenu->exec(pos)鏄湪viewport鏄劇ず<br />}</p> <p>涔熷彲鍏堝仛濂絚menu錛屽ソ澶勬槸濮嬬粓浣跨敤涓涓細<br />    QMenu cmenu = new QMenu(datatable->horizontalHeader());<br />    <br />    QAction *ascendSortAction = cmenu->addAction("鍗囧簭");<br />    QAction *descendSortAction = cmenu->addAction("闄嶅簭");<br />    QAction *filterAction = cmenu->addAction("榪囨護");<br />    QAction *reshowAction = cmenu->addAction("閲嶈澆");<br />    <br />    connect(ascendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_ascend()));<br />    connect(descendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_descend()));<br />    connect(filterAction, SIGNAL(triggered(bool)), this, SLOT(show_filter_dlg()));<br />    connect(reshowAction, SIGNAL(triggered(bool)), this, SLOT(reshow_data()));<br />show_contextmenu(const QPoint& pos)<br />{<br />    if(cmenu)<br />    {<br />        cmenu->exec(QCursor::pos());<br />    }<br />}</p> <p><br /><strong>3錛変嬌鐢≦t::ActionsContextMenu銆?br /></strong>鎶婇儴浠剁殑鎵鏈塧ction鍗砆Widget::actions()浣滀負context menu鏄劇ず鍑烘潵銆?br />榪樻槸涓婇潰鐨勪緥瀛愶紝瑕佸湪琛ㄦ牸錛圦TableView綾誨瀷錛夎〃澶存樉紺哄彸閿彍鍗曪細<br />        QAction *ascendSortAction = new QAction("鍗囧簭", this);<br />        QAction *descendSortAction = new QAction("闄嶅簭", this);<br />        QAction *filterAction = new QAction("榪囨護", this);<br />        QAction *unfilterAction = new QAction("鍙栨秷榪囨護", this);<br />    <br />        connect(ascendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_ascend()));<br />        connect(descendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_descend()));<br />        connect(filterAction, SIGNAL(triggered(bool)), this, SLOT(filter_table()));<br />        connect(unfilterAction, SIGNAL(triggered(bool)), this, SLOT(unfilter_table()));<br />    <br />        datatable->horizontalHeader()->addAction(ascendSortAction);<br />        datatable->horizontalHeader()->addAction(descendSortAction);<br />        datatable->horizontalHeader()->addAction(filterAction);<br />        datatable->horizontalHeader()->addAction(unfilterAction);<br />         <br />        datatable->horizontalHeader()->setContextMenuPolicy(Qt::ActionsContextMenu);</p> <p>鍙﹀涓や釜灝辨槸涓嶆樉紺篶ontext menu浜嗭細<br />Qt::NoContextMenu<br />    the widget does not feature a context menu, context menu handling is deferred to the widget's parent.<br />    <br />Qt::PreventContextMenu<br />    the widget does not feature a context menu, and in contrast to NoContextMenu, the handling is not deferred to the widget's parent. This means that all right mouse button events are guaranteed to be delivered to the widget itself through mousePressEvent(), and mouseReleaseEvent().</p> <p><strong>琛ュ厖錛?/strong><br />    浣跨敤Qt::ActionsContextMenu姣旇緝綆媧侊紝浣嗘槸濡傛灉闇瑕佹牴鎹綋鍓嶈彍鍗曞脊鍑虹殑浣嶇疆鏉ュ畾涔変笉鍚岃彍鍗曪紝鎴栬呭儚涓婁釜渚嬪瓙錛屽湪琛ㄦ牸 錛圦TableView綾誨瀷錛夎〃澶存樉紺哄彸閿彍鍗曟椂錛屾垜闇瑕佺煡閬撴槸鍝竴鍒楄〃澶磋鐐瑰嚮錛屼粠鑰屽湪鍚庢潵璋冪敤sort_ascend()鎺掑簭鍑芥暟鏃惰兘澶熸牴鎹笉鍚屽垪榪?琛屼笉鍚屾帓搴忕瓥鐣ワ紝閭d箞Qt::ActionsContextMenu灝卞仛涓嶅埌浜嗐?br />    榪欑闇瑕佹崟鎹夊脊鍑轟綅緗殑鎯呭喌鍙ソ鐢≦t::ActionsContextMenu浜嗭紝customContextMenuRequested ( const QPoint & pos )淇″彿榪斿洖鐐瑰嚮浣嶇疆pos錛堝湪琛ㄥご瑙嗗彛鍧愭爣緋諱腑浣嶇疆錛夛紝鐒跺悗琛ㄥご鍗沖彲璋冪敤logicalIndexAt(pos)鍑芥暟寰楀埌琚偣鍑籹ection瀵瑰簲鐨?index鍗寵鐐瑰嚮閮ㄥ垎鐨勫垪鍙鳳紝鐒跺悗瀛樹笅鏉ュ彲渚涘悗闈ction嬋媧葷殑鎺掑簭妲戒嬌鐢ㄣ?br />show_contextmenu(const QPoint& pos)<br />{<br />    //get related column of headerview<br />    contextmenu_column = datatable->horizontalHeader()->logicalIndexAt(pos);</p> <p>    //show contextmenu<br />    if(cmenu)<br />    {<br />        cmenu->exec(QCursor::pos());<br />    }<br />}</p></div></div><img src ="http://m.shnenglu.com/zhonghua/aggbug/177082.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhonghua/" target="_blank">綾崇背</a> 2012-06-01 16:25 <a href="http://m.shnenglu.com/zhonghua/archive/2012/06/01/177082.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>杞?Qt 甯哥敤鍛戒護 甯哥敤瀹?/title><link>http://m.shnenglu.com/zhonghua/archive/2012/05/30/176710.html</link><dc:creator>綾崇背</dc:creator><author>綾崇背</author><pubDate>Wed, 30 May 2012 01:49:00 GMT</pubDate><guid>http://m.shnenglu.com/zhonghua/archive/2012/05/30/176710.html</guid><wfw:comment>http://m.shnenglu.com/zhonghua/comments/176710.html</wfw:comment><comments>http://m.shnenglu.com/zhonghua/archive/2012/05/30/176710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhonghua/comments/commentRss/176710.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhonghua/services/trackbacks/176710.html</trackback:ping><description><![CDATA[<div><div> qmake 甯哥敤鍛戒護錛?/div> <div>qmake -project //鐢熸垚pro鏂囦歡錛岃嚜鍔ㄦ鏌/c++紼嬪簭鏂囦歡<br /> 銆銆 qmake -tp vc //鏍規嵁pro鏂囦歡鐢熸垚vc鐨勫伐紼嬫枃浠訛紝qt commericial鏈変竴涓粦瀹氬埌vs鐨勫伐鍏鳳紝鍙互鍦ㄨ彍鍗曟爮鐩存帴鎵撳紑<br /> 銆銆 qmake -r xxx.pro "CONFIG+=debug" //閫掑綊鐢熸垚makefile<br /> 銆銆 moc //鍖呭惈Q_OBJECT鏂囦歡杞崲鍣?br /> 銆銆 rcc //Qt resource compiler<br /> 銆銆 uic //Qt ui file translator,to .h file.</div>   <div> Qt 甯哥敤瀹忥細</div> <div>銆銆 騫沖彴鐩稿叧<br /> 銆銆 Q_WS_WIN //window緋葷粺<br /> 銆銆 Q_WS_X11 //xwindow緋葷粺<br /> 銆銆 Q_WS_MAC //鑻規灉mac緋葷粺<br /> 銆銆 Q_WS_SOL //sun鐨剆olaris緋葷粺<br /> 銆銆 鍏跺畠<br /> 銆銆 QT_OPENGL_SUPPORT //鏄惁鏀彺opengl<br /> 銆銆 QT_VERSION銆銆銆銆//qt鐨勭増鏈紝濡?if QT_VERSION > 0x040601(qt > 4.6.1)<br /> 銆銆 QT_VERSION_STR //qt鐗堟湰鐨勫瓧絎︿覆<br /> 銆銆 QT_POINTER_SIZE //鎸囬拡鐨勫瓧鑺傚搴?32bit=4,64bit=8<br /> 銆銆 QT_REQUIRE_VERSION //鐢ㄥ湪浠g爜涓紝姣斿QT_REQUIRE_VERSION(argc, argv, "4.0.2");</div> <div> global甯哥敤鍑芥暟</div> <div>         T qAbs(const T & value) //榪斿洖緇濆鍊?br /> 銆銆 void qCritical(const char * msg, ...) //杈撳嚭鍛婅淇℃伅  鍙傝禌綾諱技printf<br /> 銆銆 void qDebug(const char * msg, ... ) // 杈撳嚭璋冭瘯淇℃伅<br /> 銆銆 void qFatal(const char * msg, ... ) //杈撳嚭閿欒淇℃伅<br /> 銆銆 qMax(const T & value1,const T & value2 )// 姹傛渶澶?br /> 銆銆 qMin(const T & value1,const T & value2 ) // 姹傛渶灝?/div> <div> pro 鏂囦歡鏍煎紡</div> <div>#: 琛ㄧず鍒拌灝懼潎涓烘敞瑙嗭紝琚拷鐣?br /> 銆銆include: 鍙互鍖呭惈鍒殑鏂囨湰鏂囦歡錛屼竴鑸負*pri 渚嬪 #include "../global.pri"<br /> 銆銆scope{;;}: 棰勫畾涔?錛屽win32{} 琛ㄧず鍦╳in32騫沖彴涓嬬殑瀹氫箟錛屽叾瀹冨拷鐣?br /> 銆銆win32/unix/linux-g++/linux-g++-64: 騫沖彴瀹?br /> 銆銆DESTDIR: 浜х敓鐩爣鏂囦歡璺緞<br /> 銆銆MOC_DIR: moc杞崲鏂囦歡璺緞<br /> 銆銆RCC_DIR: 璧勬簮鏂囦歡璺緞<br /> 銆銆UI_DIR錛歶i鏂囦歡杞崲鐨勮礬寰?br /> 銆銆LIBEXT: 浜х敓lib鐨勫悗緙<br /> 銆銆QMAKE_CFLAGS_DEBUG:<br /> 銆銆QMAKE_CXXFLAGS_DEBUG:<br /> 銆銆QMAKE_CFLAGS_RELEASE:<br /> 銆銆QMAKE_CXXFLAGS_RELEASE:<br /> 銆銆TEMPLATE: 鍐沖畾鐢熸垚makefile閲囩敤鐨勬ā鏉匡紝<br /> 銆銆 =lib 琛ㄧず搴撴枃浠?br /> 銆銆 =app 琛ㄧず鐢熸垚鍙墽琛屾枃浠?br /> 銆銆 =subdirs 琛ㄧず澶勭悊瀛愮洰褰曪紙鍦ㄤ笅闈㈢敤SUBDIRS += **鏉ユ寚瀹氶偅浜涘瓙鐩綍錛?br /> 銆銆TARGET: 鎸囧畾鐩爣鏂囦歡鍚?br /> 銆銆Qt+=: 娣誨姞棰濆鐨勬ā鍧楁敮鎸侊紝渚嬪Qt -= QtCore;Qt += network,phonon,xml錛宼hread<br /> 銆銆DEFINES: 娣誨姞棰濆鐨勫畯瀹氫箟錛屽win涓嬮渶瑕佺殑export絳?br /> 銆銆DEPENDPATH: 娣誨姞浠ユ潵鐨勮礬寰?br /> 銆銆INCLUDEPATH錛?娣誨姞澶存枃浠跺寘鍚礬寰?br /> 銆銆HEADERS錛?闇瑕佸寘鍚殑澶存枃浠?br /> 銆銆SOURCES錛?闇瑕佸寘鍚殑婧愭枃浠?br /> 銆銆FORMS錛?闇瑕佸寘鍚殑ui鏂囦歡<br /> 銆銆RESOURCES錛氶渶瑕佸寘鍚殑璧勬簮鏂囦歡<br /> 銆銆LIBS錛氫緷璧栧簱鐨勮礬寰勫拰鍚嶇О -L{xxdirxx} -l{xxnamexx}<br /> 銆銆CONFIG: 娣誨姞閰嶇疆錛屽warn_on debug_and_release plugin<br /> 銆銆TRANSLATIONS: 澶氬浗璇█鏀寔鏂囦歡<br /> 銆銆INSTALLS: 瑕佸畨瑁呯殑鏂囦歡<br /> 銆銆target.path: 瀹夎鐨勮礬寰?br /> 銆銆#鍦╬ro鏂囦歡鏀寔environment variables鍜岃嚜瀹氫箟鍙橀噺<br /> 銆銆#濡俿ources.file += $$SOURCES $$HEADERS<br /> 銆銆#sources.path = $$DESTIN_DIR<br /> 銆銆#INSTALLS += target source<br /> 銆銆defineReplace(xxx): xxx涓哄彉閲?錛屾鍑芥暟鍙互榪斿洖涓涓彉閲忓煎:$$xxx()<br /> exists(file1,file2){error()}:媯鏌ユ枃浠舵槸鍚﹀瓨鍦?/div>   </div><img src ="http://m.shnenglu.com/zhonghua/aggbug/176710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhonghua/" target="_blank">綾崇背</a> 2012-05-30 09:49 <a href="http://m.shnenglu.com/zhonghua/archive/2012/05/30/176710.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://hcbr365.com" target="_blank">国模精品娜娜一二三区</a>| <a href="http://ipx758.com" target="_blank">香蕉久久国产</a>| <a href="http://gztgo.com" target="_blank">欧美一区二区三区在线播放</a>| <a href="http://laodaohang.com" target="_blank">日韩亚洲综合在线</a>| <a href="http://luqintang.com" target="_blank">91久久黄色</a>| <a href="http://czjrby.com" target="_blank">99精品国产热久久91蜜凸</a>| <a href="http://990288.com" target="_blank">日韩网站在线</a>| <a href="http://tavbao.com" target="_blank">午夜精品久久久久</a>| <a href="http://www44552.com" target="_blank">久久久久久香蕉网</a>| <a href="http://www-798009.com" target="_blank">免费在线成人av</a>| <a href="http://www-kj777.com" target="_blank">欧美中文字幕在线观看</a>| <a href="http://www-4997.com" target="_blank">欧美在线视频一区二区</a>| <a href="http://yw5531.com" target="_blank">免费91麻豆精品国产自产在线观看</a>| <a href="http://wwwyinyinai149.com" target="_blank">久久久免费av</a>| <a href="http://xashp.com" target="_blank">欧美日韩视频在线观看一区二区三区</a>| <a href="http://cechi8.com" target="_blank">欧美激情精品久久久久久</a>| <a href="http://fcponteggi.com" target="_blank">欧美日韩国产精品成人</a>| <a href="http://spardec.com" target="_blank">国产精品美女久久久久久久</a>| <a href="http://shuoqe.com" target="_blank">黄色精品在线看</a>| <a href="http://aijiaoji.com" target="_blank">一本色道久久综合亚洲精品按摩</a>| <a href="http://lucky5888.com" target="_blank">亚洲综合色网站</a>| <a href="http://56x6.com" target="_blank">欧美不卡在线</a>| <a href="http://77017w.com" target="_blank">在线一区二区三区做爰视频网站</a>| <a href="http://0000zz.com" target="_blank">久久大香伊蕉在人线观看热2</a>| <a href="http://66688811.com" target="_blank">欧美精品免费观看二区</a>| <a href="http://qqqtrip.com" target="_blank">国产精品女主播一区二区三区</a>| <a href="http://2061826.com" target="_blank">国产专区综合网</a>| <a href="http://wwwbaoyu66.com" target="_blank">一本一本a久久</a>| <a href="http://www-188444.com" target="_blank">久久久五月天</a>| <a href="http://jigu100.com" target="_blank">中文欧美字幕免费</a>| <a href="http://69ru.com" target="_blank">你懂的视频一区二区</a>| <a href="http://858185gg.com" target="_blank">国产精品亚洲аv天堂网</a>| <a href="http://668334.com" target="_blank">亚洲娇小video精品</a>| <a href="http://yeyelu888.com" target="_blank">欧美一区二区三区免费观看视频 </a>| <a href="http://yw9677.com" target="_blank">日韩视频免费看</a>| <a href="http://kpd521.com" target="_blank">欧美在线二区</a>| <a href="http://www227ee.com" target="_blank">国产精品美女主播在线观看纯欲</a>| <a href="http://y65k.com" target="_blank">91久久精品国产91久久性色</a>| <a href="http://xjj733.com" target="_blank">久久成人免费日本黄色</a>| <a href="http://430390.com" target="_blank">亚洲国产精品久久久久婷婷老年</a>| <a href="http://2jjzz.com" target="_blank">在线亚洲一区观看</a>| <a href="http://www-kkjj88.com" target="_blank">牛牛国产精品</a>| <a href="http://492541.com" target="_blank">久久精品国产亚洲aⅴ</a>| <a href="http://tinganji.com" target="_blank">国产精品美女www爽爽爽</a>| <a href="http://eee2244.com" target="_blank">亚洲欧洲午夜</a>| <a href="http://gx2020.com" target="_blank">欧美暴力喷水在线</a>| <a href="http://jnhrjixie.com" target="_blank">欧美中文在线观看</a>| <a href="http://huabiseeds.com" target="_blank">国产欧美日韩麻豆91</a>| <a href="http://aaa211.com" target="_blank">亚洲婷婷在线</a>| <a href="http://990288.com" target="_blank">亚洲肉体裸体xxxx137</a>| <a href="http://889028.com" target="_blank">午夜在线电影亚洲一区</a>| <a href="http://hlyjh.com" target="_blank">欧美日韩一区二区免费视频</a>| <a href="http://maomi54.com" target="_blank">亚洲精品日韩精品</a>| <a href="http://412342.com" target="_blank">欧美激情一区二区三区不卡</a>| <a href="http://www-4012345.com" target="_blank">欧美影院在线播放</a>| <a href="http://ynzhuoyi.com" target="_blank">国产乱码精品一区二区三区忘忧草</a>| <a href="http://szbeikai.com" target="_blank">999亚洲国产精</a>| <a href="http://26thb.com" target="_blank">欧美成人视屏</a>| <a href="http://instantptt.com" target="_blank">久久在线视频</a>| <a href="http://nachang5117.com" target="_blank">国内精品视频在线观看</a>| <a href="http://winkwink333.com" target="_blank">久久国产乱子精品免费女 </a>| <a href="http://aijiaoji.com" target="_blank">久久aⅴ国产欧美74aaa</a>| <a href="http://483187.com" target="_blank">欧美性猛交xxxx乱大交蜜桃</a>| <a href="http://exsecular.com" target="_blank">9l国产精品久久久久麻豆</a>| <a href="http://4c8x.com" target="_blank">亚洲国产精品99久久久久久久久</a>| <a href="http://www5909.com" target="_blank">狼人社综合社区</a>| <a href="http://133868.com" target="_blank">亚洲国产精品传媒在线观看</a>| <a href="http://1323666.com" target="_blank">久久久精品国产一区二区三区</a>| <a href="http://ad377.com" target="_blank">羞羞答答国产精品www一本</a>| <a href="http://avtbr123.com" target="_blank">国产视频在线一区二区 </a>| <a href="http://xxxxxdywvip18.com" target="_blank">欧美成人午夜激情</a>| <a href="http://fobdoer.com" target="_blank">亚洲国产91</a>| <a href="http://zunguidq.com" target="_blank">欧美肥婆bbw</a>| <a href="http://482896.com" target="_blank">欧美激情a∨在线视频播放</a>| <a href="http://tubcup.com" target="_blank">亚洲人成在线播放网站岛国</a>| <a href="http://92ye.com" target="_blank">亚洲日本va在线观看</a>| <a href="http://8x588.com" target="_blank">欧美日韩精品高清</a>| <a href="http://4tobi.com" target="_blank">欧美亚洲一区在线</a>| <a href="http://7749137.com" target="_blank">久久成人精品</a>| <a href="http://59199m.com" target="_blank">91久久综合亚洲鲁鲁五月天</a>| <a href="http://www068hs.com" target="_blank">欧美mv日韩mv国产网站</a>| <a href="http://eee2244.com" target="_blank">欧美1区3d</a>| <a href="http://322033.com" target="_blank">中文日韩在线</a>| <a href="http://xissy.com" target="_blank">欧美一级专区</a>| <a href="http://wyy66.com" target="_blank">亚洲激情女人</a>| <a href="http://107766a.com" target="_blank">宅男噜噜噜66一区二区</a>| <a href="http://56667r.com" target="_blank">国产欧美一二三区</a>| <a href="http://www-78733.com" target="_blank">老司机成人网</a>| <a href="http://leohacks.com" target="_blank">欧美激情一区二区三区在线视频观看 </a>| <a href="http://3dprintingferuima.com" target="_blank">国产亚洲毛片在线</a>| <a href="http://7885888.com" target="_blank">麻豆精品视频</a>| <a href="http://caopanjia.com" target="_blank">欧美三级视频</a>| <a href="http://xiaoyaer.com" target="_blank">久久免费国产精品1</a>| <a href="http://dy25777.com" target="_blank">免费欧美电影</a>| <a href="http://66688811.com" target="_blank">欧美影院精品一区</a>| <a href="http://konwoosh.com" target="_blank">免费看的黄色欧美网站</a>| <a href="http://gykfqzgpt.com" target="_blank">亚洲视频精选</a>| <a href="http://lmjqav.com" target="_blank">久久精品亚洲精品</a>| <a href="http://yhc26.com" target="_blank">日韩视频中文字幕</a>| <a href="http://timonna.com" target="_blank">欧美一区二区日韩一区二区</a>| <a href="http://3314133.com" target="_blank">亚洲激情在线</a>| <a href="http://cmtqd.com" target="_blank">欧美一级片一区</a>| <a href="http://china391.com" target="_blank">亚洲精品美女免费</a>| <a href="http://5138555.com" target="_blank">亚洲女优在线</a>| <a href="http://yyds16.com" target="_blank">亚洲精品欧美</a>| <a href="http://www-90422.com" target="_blank">久久激情一区</a>| <a href="http://77777kkk.com" target="_blank">亚洲免费一级电影</a>| <a href="http://wwwavtb2049.com" target="_blank">久久综合精品一区</a>| <a href="http://bizssr.com" target="_blank">欧美一区二视频</a>| <a href="http://81ffff.com" target="_blank">欧美区在线播放</a>| <a href="http://yidaiban.com" target="_blank">麻豆精品视频在线观看</a>| <a href="http://www-34909.com" target="_blank">国产精品久久久免费</a>| <a href="http://www9ckk1.com" target="_blank">欧美成人官网二区</a>| <a href="http://chunshanketang.com" target="_blank">国产农村妇女精品</a>| <a href="http://taoh228.com" target="_blank">亚洲精选在线观看</a>| <a href="http://wyy66.com" target="_blank">亚洲电影免费观看高清完整版在线</a>| <a href="http://4tobi.com" target="_blank">在线视频你懂得一区</a>| <a href="http://613609.com" target="_blank">亚洲黄一区二区</a>| <a href="http://677cn.com" target="_blank">久久成人免费网</a>| <a href="http://66636by.com" target="_blank">欧美一区二区三区喷汁尤物</a>| <a href="http://shiyoudiban.com" target="_blank">久久中文字幕一区二区三区</a>| <a href="http://chengli88.com" target="_blank">欧美日韩国产高清</a>| <a href="http://123273.com" target="_blank">欧美成人激情视频</a>| <a href="http://270909.com" target="_blank">国产日韩欧美综合在线</a>| <a href="http://papala4444.com" target="_blank">一本一本a久久</a>| <a href="http://caoxiu33.com" target="_blank">av不卡在线看</a>| <a href="http://8p3c.com" target="_blank">欧美www视频</a>| <a href="http://2061826.com" target="_blank">蜜桃久久精品乱码一区二区</a>| <a href="http://jilcool.com" target="_blank">国产亚洲网站</a>| <a href="http://www280999.com" target="_blank">性欧美在线看片a免费观看</a>| <a href="http://maomi998.com" target="_blank">亚洲女ⅴideoshd黑人</a>| <a href="http://3dmh133.com" target="_blank">欧美精品午夜视频</a>| <a href="http://k68c.com" target="_blank">最新国产の精品合集bt伙计</a>| <a href="http://hongmoyi.com" target="_blank">在线观看成人一级片</a>| <a href="http://xiaoyaer.com" target="_blank">午夜精品亚洲一区二区三区嫩草</a>| <a href="http://hhh246.com" target="_blank">亚洲天堂网在线观看</a>| <a href="http://playav999.com" target="_blank">欧美日韩精品免费在线观看视频</a>| <a href="http://wtoykd.com" target="_blank">欧美国产综合一区二区</a>| <a href="http://497988.com" target="_blank">亚洲第一区在线</a>| <a href="http://wwwsfsf11.com" target="_blank">久久亚洲国产精品日日av夜夜</a>| <a href="http://96ykm.com" target="_blank">久久一区二区三区av</a>| <a href="http://fangsling.com" target="_blank">韩国一区二区三区在线观看</a>| <a href="http://mgcc37.com" target="_blank">午夜精品久久久久久久久久久久</a>| <a href="http://805185.com" target="_blank">亚洲欧美日韩精品综合在线观看</a>| <a href="http://maomi998.com" target="_blank">欧美理论电影在线播放</a>| <a href="http://5177jy.com" target="_blank">亚洲精品国产系列</a>| <a href="http://sz-jyqj.com" target="_blank">这里是久久伊人</a>| <a href="http://036762.com" target="_blank">国产精品久久午夜</a>| <a href="http://9927tv.com" target="_blank">欧美中文字幕</a>| <a href="http://567acg.com" target="_blank">牛人盗摄一区二区三区视频</a>| <a href="http://478884.com" target="_blank">亚洲大片精品永久免费</a>| <a href="http://ycgg008.com" target="_blank">久久在线视频在线</a>| <a href="http://haomscq.com" target="_blank">亚洲日韩视频</a>| <a href="http://777888789.com" target="_blank">欧美亚洲日本网站</a>| <a href="http://www-87633.com" target="_blank">国产色综合天天综合网</a>| <a href="http://www474000c.com" target="_blank">久久www成人_看片免费不卡</a>| <a href="http://wwwcc7777.com" target="_blank">久久久免费精品视频</a>| <a href="http://3374com.com" target="_blank">精品二区视频</a>| <a href="http://k91cm.com" target="_blank">欧美—级高清免费播放</a>| <a href="http://ekuyun.com" target="_blank">国产精品99久久久久久久女警 </a>| <a href="http://77777de.com" target="_blank">亚洲国产日韩欧美</a>| <a href="http://spvicarb.com" target="_blank">亚洲每日在线</a>| <a href="http://444398.com" target="_blank">国产精品第2页</a>| <a href="http://yw3328.com" target="_blank">欧美一区日本一区韩国一区</a>| <a href="http://xiehaihua.com" target="_blank">两个人的视频www国产精品</a>| <a href="http://281191.com" target="_blank">亚洲精品一区二区三区不</a>| <a href="http://xjj733.com" target="_blank">欧美视频二区36p</a>| <a href="http://1x118.com" target="_blank">欧美影院成年免费版</a>| <a href="http://17ang.com" target="_blank">亚洲国产日韩在线</a>| <a href="http://www11108b.com" target="_blank">亚洲欧美日韩国产中文</a>| <a href="http://my777752.com" target="_blank">国产欧美日韩在线视频</a>| <a href="http://8090567.com" target="_blank">免费一级欧美在线大片</a>| <a href="http://jizz16.com" target="_blank">一区二区欧美在线</a>| <a href="http://www-4012345.com" target="_blank">久久av在线看</a>| <a href="http://aaa798.com" target="_blank">日韩视频在线观看免费</a>| <a href="http://4430x.com" target="_blank">国产精品一区二区黑丝</a>| <a href="http://xing69.com" target="_blank">久久综合久久综合久久</a>| <a href="http://977mo.com" target="_blank">日韩午夜剧场</a>| <a href="http://www895pao.com" target="_blank">免费成人av在线看</a>| <a href="http://www227zh.com" target="_blank">中日韩男男gay无套</a>| <a href="http://kkwwxx.com" target="_blank">狠狠色噜噜狠狠狠狠色吗综合</a>| <a href="http://www-137999.com" target="_blank">欧美国产日韩视频</a>| <a href="http://my6557.com" target="_blank">久久爱www久久做</a>| <a href="http://sdhanm.com" target="_blank">在线一区二区日韩</a>| <a href="http://zhhtianyi.com" target="_blank">欧美va天堂</a>| <a href="http://www-111111.com" target="_blank">翔田千里一区二区</a>| <a href="http://yiqipapa8.com" target="_blank">最新国产の精品合集bt伙计</a>| <a href="http://a718sx.com" target="_blank">国产精品一区二区你懂得 </a>| <a href="http://6aaee.com" target="_blank">国产一区再线</a>| <a href="http://my17677.com" target="_blank">亚洲免费观看视频</a>| <a href="http://979695.com" target="_blank">国产亚洲欧美一区二区三区</a>| <a href="http://5s5s5s.com" target="_blank">欧美99久久</a>| <a href="http://55psd.com" target="_blank">久久aⅴ国产欧美74aaa</a>| <a href="http://caoxiu33.com" target="_blank">99天天综合性</a>| <a href="http://aqd072.com" target="_blank">亚洲国产成人精品女人久久久 </a>| <a href="http://456dv.com" target="_blank">极品尤物一区二区三区</a>| <a href="http://jm-comic3.com" target="_blank">欧美视频一区二区在线观看 </a>| <a href="http://uu6623.com" target="_blank">一区二区三区精品</a>| <a href="http://pabjzz.com" target="_blank">欧美成人免费播放</a>| <a href="http://hakuihoso.com" target="_blank">久久成人av少妇免费</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>