锘??xml version="1.0" encoding="utf-8" standalone="yes"?>麻豆av一区二区三区,欧美主播一区二区三区,国产日韩精品视频一区二区三区 http://m.shnenglu.com/biao/category/10673.html zh-cn Mon, 14 Sep 2009 00:13:08 GMT Mon, 14 Sep 2009 00:13:08 GMT 60 Qt鑷畾涔塛idget: 鐢≦T鍒涘緩鏂伴鏍?/title> http://m.shnenglu.com/biao/archive/2009/09/14/96081.html鏆楅噾瑁呭 鏆楅噾瑁呭 Sun, 13 Sep 2009 23:00:00 GMT http://m.shnenglu.com/biao/archive/2009/09/14/96081.html http://m.shnenglu.com/biao/comments/96081.html http://m.shnenglu.com/biao/archive/2009/09/14/96081.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/96081.html http://m.shnenglu.com/biao/services/trackbacks/96081.html 1錛嶲t鐨勯鏍?/strong> 銆銆a) Qt綆浠?br style="word-break: break-all; line-height: normal; ">銆銆Qt鏄竴涓法騫沖彴鐨凜++鍥懼艦鐢ㄦ埛鐣岄潰搴旂敤紼嬪簭寮鍙戝簱錛屼嬌鐢≦t鍙互寮鍙戝嚭楂樿川閲忕殑鍥懼艦鐢ㄦ埛鎺ュ彛錛屽畠鏄畬鍏ㄩ潰鍚戝璞$殑銆佹槗浜庢墿灞曚笖鍏佽鐪熸鐨勭粍浠剁紪紼嬨俀t鑾峰緱浜嗗緢澶х殑鎴愬姛錛岀壒鍒槸瀹冪殑淇″彿-妲芥満鍒舵槸闈炲父鍊煎緱鐮旂┒鐨勯氫俊鏈哄埗錛屽畠涔熸槸Linux鍙戣鐗堟爣鍑嗙粍浠禟DE(K Desktop Enviroment)鐨勫熀紜銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆b) 椋庢牸鏈哄埗 銆銆Qt鐨勯鏍兼満鍒跺疄鐜頒簡涓嶅悓騫沖彴涓婄殑鍥懼艦鐢ㄦ埛鎺ュ彛錛圙UI錛夌殑瑙傛劅錛坙ook and feel錛?渚嬪Windows騫沖彴涓婇氬父浣跨敤Windows鎴朩indows-xp椋庢牸錛岃孶nix騫沖彴涓婇氬父浣跨敤Motif銆丆DE椋庢牸銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆涓嬪浘鏄劇ず浜哘t涓笌椋庢牸鐩稿叧鐨勭被鐨勭戶鎵垮叧緋?br style="word-break: break-all; line-height: normal; ">銆銆銆 銆銆QStyle鏄墍鏈夐鏍肩被鐨勫熀綾伙紝瀹冩帶鍒剁潃鎵鏈夌殑閮ㄤ歡錛坵idget鍗硍indows緙栫▼涓殑鎺т歡錛夌殑鐣岄潰椋庢牸鎴栬鎰燂紝瀹冨畾涔変簡澶ч噺鐨勬灇涓劇被鍨嬪拰鍗佸嚑涓嚱鏁般傛灇涓劇被鍨嬭〃紺虹晫闈笂鐨勪笉鍚屽厓绱狅紙濡傜粍鍚堟涓殑鎸夐挳錛屾寜閽殑杈規絳夛級錛涘嚱鏁版帶鍒跺浘褰㈢敤鎴風晫闈㈢殑緇樺埗錛屼絾澶у鏁板嚱鏁板熀鏈笂鍙槸涓浜涘0鏄庤屾病鏈夊嚱鏁板疄鐜幫紝浠栦滑鐨勫疄鐜板湪QCommonStyle銆丵WindowStyle銆丵MotifStyle鍙婂叾瀛愮被涓俀Style鍙疄鐜頒簡3涓嚱鏁癲rawItem()," itemRect(), visualRect()銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆drawItem(): 璐熻矗緇樺埗鏂囨湰鍜岃薄绱犲浘銆?br style="word-break: break-all; line-height: normal; ">銆銆itemRect(): 榪斿洖鏂囨湰鎴栧浘鍍忔墍鍗犵殑鍖哄煙銆?br style="word-break: break-all; line-height: normal; ">銆銆visualRect(): 榪斿洖閫昏緫鍧愭爣錛岃繖涓嚱鏁頒嬌Qt瀹炵幇right-to-left椋庢牸錛堥樋鏂囥佺淮鏂囦紶緇熸槸鏂囨湰浠庡彸鍚戝乏鏄劇ず錛屽洜姝ゆ帶浠跺竷灞涔熸槸浠庡彸鍚戝乏錛夈傚涓嬪浘鎵紺猴細 銆銆銆 銆銆鍙互鐪嬪埌鑿滃崟銆佸伐鍏鋒潯鏄彸瀵歸綈銆佸崟閫夋鐨勬寜閽湪鍙寵竟 銆銆 銆銆c)" 鍒涘緩鏂伴鏍肩殑姝ラ 銆銆鍦≦t涓疄鐜頒竴縐嶆柊椋庢牸鐨勬楠ゅ緢綆鍗曪細鍙渶閫夋嫨涓涓鏍肩被錛堝QCommonStyle鎴朡Style錛変綔涓虹埗綾伙紝鐒跺悗瀹炵幇鎰熷叴瓚g殑鍑芥暟鍗沖彲銆傞毦鐐瑰湪浜庡嚱鏁扮殑瀹炵幇銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆閫夋嫨鐖剁被錛氬彲浠ラ夋嫨QStyle, QCommonStyle, QWindowStyle, QMotifStyle浠ュ強浠栦滑鐨勫瓙綾葷殑浠繪剰涓涓綔涓虹埗綾匯傞氬父鍙互閫夋嫨QWindowsStyle鎴朡MotifStyle錛屼篃鍙互閫夋嫨QCommonStyle鐢氳嚦鏄疩Style錛屼絾鏄伐浣滈噺浼氭瘮杈冨ぇ錛屽洜涓哄緢澶氱晫闈㈢殑緇嗚妭闇瑕佽嚜宸卞疄鐜般?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆閲嶆柊瀹炵幇蹇呰鐨勫嚱鏁幫細鎯充慨鏀圭晫闈㈤鏍肩殑鍝儴鍒嗭紝灝遍噸鏂板疄鐜頒笌緇樺埗閭i儴鍒嗙浉鍏崇殑鍑芥暟錛屼笅闈㈣В閲婁竴涓嬫垜浠閲嶈澆鐨凲Style涓殑鍑犱釜鍑芥暟錛岃繖鍑犱釜鍑芥暟鎺у埗鐫鍥懼艦鐢ㄦ埛鐣岄潰涓婁笉鍚屽厓绱犵殑甯冨眬鍜岃鎰熴?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆銆銆銆銆銆銆銆銆銆銆 1錛塿oid drawPrimitive( PrimitiveElement pe, 銆銆銆銆銆銆銆銆銆銆銆銆 QPainter *p, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆const QRect & r, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆const QColorGroup & cg, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆SFlags flags = Style_Default, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆const QStyleOption &opt = QStyleOption::Default ) ; 銆銆銆銆銆銆銆銆銆銆銆銆銆銆 銆銆鍔熻兘錛氱粯鍒跺熀鏈浘褰㈠厓绱狅紝濡俀SpinBox涓殑甯︾澶寸殑鎸夐挳銆 絳夈?br style="word-break: break-all; line-height: normal; ">銆銆鍙傛暟錛? PrimitiveElement pe: 榪欎釜鏋氫婦鍨嬪彉閲忚〃紺哄皢瑕佺粯鍒剁殑鍩烘湰鍥懼艦鐣岄潰鍏冪礌錛堣繖閲岃鐨勫熀鏈浘褰㈢敤鎴風晫闈㈠厓绱犳寚GUI涓笉鍙啀鍒嗙殑涓涓師瀛愬厓绱狅紝濡傜粍鍚堟銆 涓殑榪欎釜緇樻湁榛戣壊涓夎褰㈢殑鎸夐挳錛宻pinBox涓殑鎸夐挳銆 銆銆QPainter *p錛氭寚鍚慟Painter綾葷殑鎸囬拡錛孮t涓殑鎵鏈夌粯鍒舵搷浣滀笉綆℃槸緇樺埗鏂囨湰銆佸浘褰㈣繕鏄浘鍍忛兘鐢辮繖涓被鏉ュ鐞嗐?br style="word-break: break-all; line-height: normal; ">銆銆QRect &r: 琛ㄧず涓涓煩褰㈠尯鍩燂紝Qt鍦ㄨ繖涓尯鍩熶腑緇樺埗鍩烘湰鐣岄潰鍏冪礌錛圥rimitiveElement錛? 銆銆QColorGroup &cg: QColorGroup琛ㄧず涓涓儴浠?widget)鐨勯鑹茬粍錛坈olor group錛夛紝color group鍚湁閮ㄤ歡緇樺埗鑷繁鏃朵嬌鐢ㄧ殑鍚勭棰滆壊錛岃濡傚墠鏅壊鑳屾櫙鑹茬瓑銆備笅鍥懼睍紺轟簡color group涓殑鍚勭棰滆壊灞炴?br style="word-break: break-all; line-height: normal; ">銆銆銆 銆銆SFlags" flags: 鎺у埗濡備綍緇樺埗鍥懼艦鐣岄潰鍏冪礌鐨勬爣蹇椼?br style="word-break: break-all; line-height: normal; ">銆銆QStyleOption &opt: 緇樺埗涓嶅悓鐨勯儴浠?widget)鏃朵細闇瑕佷笉鍚岀殑鍙傛暟錛屽緇樺埗闈㈡澘錛坧anel錛夊彲鑳介渶瑕佺嚎瀹戒綔涓洪澶栧弬鏁拌岀粯鍒剁劍鐐圭煩褰紙focus rect錛夊彲鑳介渶瑕佽儗鏅壊浣滀負棰濆鍙傛暟錛屾墍浠t涓撻棬鎻愪緵浜嗕竴涓被QStyleOption鏉ュ皝瑁呬笉鍚岀殑widget鍙兘闇瑕佺殑涓嶅悓鐨勫弬鏁幫紝opt鎸囧悜榪欐牱涓涓被鐨勫璞°?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆 銆銆2錛塿oid drawComplexControl( ComplexControl control, 銆銆QPainter *p, 銆銆const QWidget *widget, 銆銆const QRect &r, 銆銆const QColorGroup &cg, 銆銆SFlags flags = Style_Default, 銆銆SCFlags controls = QStyle::SC_All, 銆銆SCFlags active = QStyle::SC_None, 銆銆const QStyleOption& opt = QStyleOption::Default) 銆銆銆銆銆 銆銆鍔熻兘錛氱粯鍒跺鏉傛帶鍒墮儴浠訛紙widget錛夊SpinWidget錛宑omboBox錛宻lider錛宭istView絳?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆鍙傛暟錛?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆ComplexControl control錛氭槸涓涓灇涓鵑噺錛岃〃紺哄皢瑕佺粯鍒剁殑澶嶆潅鎺у埗閮ㄤ歡錛坵idget錛夊緇勫悎妗嗐佸垪琛ㄦ絳夈?br style="word-break: break-all; line-height: normal; ">銆銆QPainter *p錛氭寚鍚慟Painter鐨勬寚閽堬紝Qt涓殑鎵鏈夌粯鍒舵搷浣滀笉綆℃槸緇樺埗鏂囨湰銆佸浘褰㈣繕鏄浘鍍忛兘鐢辮繖涓被鏉ュ鐞嗐?br style="word-break: break-all; line-height: normal; ">銆銆QWidget *widget錛氭寚鍚慟Wdget鎴栧叾瀛愮被鐨勬寚閽堬紝鍙互鏍規嵁涓婇潰control鐨勫艱漿鍙橈紙cast錛夋垚鍚堥傜殑綾誨瀷錛屼緥濡傚鏋滆緇樺埗QSpinWidget錛岄偅涔坈ontrol鍙栧間負CC_SpinWidget,鑰寃idget鎸囧悜涓涓猀SpinWidget(QWidget鐨勫瓙綾?鐨勫疄渚嬶紙instance錛夈備嬌鐢ㄨ繖涓彉閲忓彲浠ヨ闂甉SpinWidget鐨勬垚鍛樺嚱鏁板拰鎴愬憳鍙橀噺錛岃濡傚彲浠ヨ皟鐢≦SpinWidget鐨剆izeHint鍑芥暟鑾峰緱榪欎釜閮ㄤ歡鐨勭己鐪佸ぇ灝忥紙涓涓煩褰㈢┖闂達級銆?br style="word-break: break-all; line-height: normal; ">銆銆QRect &r: 琛ㄧず涓涓煩褰㈠尯鍩燂紝Qt鍦ㄨ繖涓尯鍩熶腑緇樺埗鎺т歡鎴栧叾瀛愰儴浠躲?br style="word-break: break-all; line-height: normal; ">銆銆QColorGroup &cg: QColorGroup琛ㄧず涓涓儴浠?widget)鐨勯鑹茬粍錛坈olor group錛夛紝color group鍚湁閮ㄤ歡緇樺埗鑷繁鏃朵嬌鐢ㄧ殑鍚勭棰滆壊錛岃濡傚墠鏅壊鑳屾櫙鑹茬瓑銆?br style="word-break: break-all; line-height: normal; ">銆銆SFlags flags: 鎺у埗濡備綍緇樺埗鍥懼艦鐣岄潰鍏冪礌鐨勬爣蹇?br style="word-break: break-all; line-height: normal; ">銆銆SCFlags controls琛ㄧず緇樺埗澶嶆潅鎺у埗閮ㄤ歡control鐨勫摢涓瓙閮ㄤ歡錛岀己鐪佷負SC_All,鍗崇粯鍒舵暣涓猚ontrol鑰屼笉鏄叾鏌愪釜瀛愰儴浠訛紙娉ㄦ剰control, controls鏄袱涓笉鍚岀殑鍙傛暟錛?br style="word-break: break-all; line-height: normal; ">銆銆QStyleOption &opt: 鍦ㄧ粯鍒朵笉鍚岀殑閮ㄤ歡鏃跺彲鑳介渶瑕佷笉鍚岀殑棰濆鐨勫弬鏁幫紝榪欎釜鍙橀噺鍦ㄧ粯鍒朵笉鍚岀殑widget鏃舵彁渚涗笉鍚岀殑淇℃伅銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆 銆銆3) QRect querySubControlMetrics(ComplexControl control, 銆銆銆銆const QWidget* widget, 銆銆SubControl sc, 銆銆const QStyleOption& = QStyleOption::Default) 銆銆 銆銆鍔熻兘錛氳幏鍙栧瓙閮ㄤ歡鐨勫潗鏍囧拰灝哄淇℃伅銆傝繖涓嚱鏁版帶鍒剁潃涓涓鏉傛帶浠剁殑甯冨眬錛岄噸杞借繖涓嚱鏁板彲浠ヤ嬌鐨勭粍鍚堟鐨勪笅鎷夋寜閽粯鍒跺湪宸﹁竟 鑰屼笉鏄粯璁ょ殑鍙寵竟銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆鍙傛暟錛?br style="word-break: break-all; line-height: normal; ">銆銆ComplexControl control: 鏋氫婦閲忥紝琛ㄧず灝嗚緇樺埗鐨勫鏉傛帶鍒墮儴浠訛紙widget錛夊緇勫悎妗嗐佸垪琛ㄦ絳夈?br style="word-break: break-all; line-height: normal; ">銆銆QWidget *widget錛氭寚鍚慟Widget鎴栧叾瀛愮被鐨勬寚閽堬紝鍙互鏍規嵁涓婇潰control鐨勫艱漿鍙橈紙cast錛夋垚鍚堥傜殑綾誨瀷錛屼緥濡傚鏋滆緇樺埗QSpinWidget錛岄偅涔坈ontrol鍙栧間負CC_SpinWidget,鑰寃idget鎸囧悜涓涓猀SpinWidget(QWidget鐨勫瓙綾?鐨勫疄渚嬨備嬌鐢ㄨ繖涓彉閲忓彲浠ヨ闂甉SpinWidget鐨勬垚鍛樺嚱鏁板拰鎴愬憳鍙橀噺錛岃濡傚彲浠ヨ皟鐢≦SpinWidget鐨剆izeHint鍑芥暟鑾峰緱榪欎釜閮ㄤ歡鐨勭己鐪佸ぇ灝忥紙涓涓煩褰㈢┖闂達級銆?br style="word-break: break-all; line-height: normal; ">銆銆SubControl sc錛氭灇涓鵑噺錛屼竴涓鏉傞儴浠跺彲鑳界敱澶氫釜鐨勫瓙閮ㄤ歡緇勬垚錛屼嬌鐢╯c鍙橀噺璇存槑瑕佽幏鍙栭偅涓瓙閮ㄤ歡鐨勫潗鏍囧拰灝哄淇℃伅銆?br style="word-break: break-all; line-height: normal; ">銆銆QStyleOption &opt: 璁$畻涓嶅悓閮ㄤ歡鐨勫昂瀵告椂鍙兘闇瑕佷笉鍚岀殑棰濆淇℃伅,QStyleOption灝佽浜嗚繖浜涗俊鎭?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆2錛庡垱寤烘柊椋庢牸 銆銆涓嬮潰鐢ㄤ竴涓緥瀛愭潵浠嬬粛涓涓嬪垱寤烘柊椋庢牸鐨勬暣涓繃紼嬶紝鍦ㄧ紪紼嬩箣鍓嶏紝鍏堢湅涓涓嬫渶緇堢殑緇撴灉鏄粈涔堟牱鐨勩?鍦≦t鍐呴儴QSpinBox綾繪槸閫氳繃QSpinWidget瀹炵幇鐨? 銆銆榛樿椋庢牸鐨勬晥鏋滐細銆 浣跨敤鏂伴鏍肩殑鏁堟灉錛氥 銆銆鍙互鐪嬪埌鍦ㄦ柊椋庢牸涓垜浠殑SpinBox鏈変簡鍨傜洿鏄劇ず鐨勬晥鏋溿備笅闈㈡垜浠寜涓婇潰璇存槑鐨勬楠ゆ潵鍒涘緩涓縐嶆柊鐨勯鏍箋?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆1錛夐夋嫨鍩虹被錛氭垜浠夋嫨QWindowsStyle綾諱綔涓烘垜浠柊椋庢牸綾葷殑鍩虹被錛屽綋鐒朵篃鍙互閫夋嫨QMotifStyle錛屽湪榪欎釜渚嬪瓙縐嶄篃鍙互閫夋嫨QCommonStyle銆備竴鑸笉寤鴻閫夋嫨QCommonStyle浣滀負鍩虹被錛屽洜涓篞CommonStyle鍙疄鐜頒簡涓閮ㄥ垎鐣岄潰閮ㄤ歡錛屽鏋滆瀹炵幇涓涓畬鏁寸殑椋庢牸綾伙紝鎴戜滑闇瑕侀噸鏂板啓寰堝浠g爜銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆2錛夐噸杞界浉鍏崇殑鍑芥暟錛氬湪榪欎釜渚嬬▼涓垜浠彧淇敼浜唖pinBox鐨勯鏍鹼紝瀹炵幇榪欎釜閮ㄤ歡錛坵idget錛夊彧涓嶲Style綾葷殑涓変釜鍑芥暟drawPrimitive, drawComplexControl, qureySubControlMerics鐩稿叧錛屾墍浠ユ垜浠彧闇閲嶈澆榪欎笁涓嚱鏁扮殑鐩稿叧閮ㄥ垎浠g爜.涓嬮潰瀵逛唬鐮佷腑鐨勫叧閿儴鍒嗗仛涓涓嬫敞閲婏紝涓嶉噸瑕佺殑閮ㄥ垎鐪佺暐浜嗐傝緇嗙殑浠g爜鍙互浠庡悗闈笅杞姐?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆緇樺埗spinbox涓寜閽殑鍑芥暟錛?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆void CustomStyle::drawPrimitive( PrimitiveElement pe, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆QPainter * p, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆const QRect & r, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆const QColorGroup & cg, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆SFlags flags, 銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆const QStyleOption & opt ) const 銆銆{ 銆銆/*PE_SpinWidgetUp,PE_SpinWidgetDown琛ㄧずspinBox涓殑涓嬫寜閽拰涓婃寜閽紝涓嬮潰鐨勪唬鐮佷嬌寰楄繖涓や釜鎸夐挳涓殑涓夎褰㈠垎鍒悜宸﹀拰鍚戝彸*/ 銆銆if ((pe == PE_SpinWidgetUp) || (pe == PE_SpinWidgetDown)){ 銆銆int fw = pixelMetric( PM_DefaultFrameWidth, 0 );//fw琛ㄧず杈規瀹藉害錛岄粯璁や負2 銆銆QRect br;銆//spinBox涓婃寜閽殑杈圭晫鐭╁艦涓嶆槸spinBox鐨勮竟鐣岀煩褰€?br style="word-break: break-all; line-height: normal; ">銆銆br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2, 銆銆銆銆r.height() - fw*2 ); 銆銆p->fillRect( br, cg.brush( QColorGroup::Button ) ); 銆銆int x = r.x(), y = r.y(), w = r.width(), h = r.height(); 銆銆int sw = w-4; 銆銆int sh = sw/2 + 2;銆銆銆// Must have empty row at foot of arrow 銆銆int sx = x + w / 2 - sw / 2 - 1; 銆銆int sy = y + h / 2 - sh / 2 - 1; 銆銆 銆銆QPointArray a; 銆銆/* 璁劇疆涓夎褰㈢殑涓変釜鐐圭殑鍧愭爣錛屼慨鏀硅繖涓変釜鐐瑰彲浠ヤ嬌寰桻SpinBox涓婃寜閽噷鐨勪笁瑙掑瀷鍛堢幇浠繪剰鐨勫艦鐘訛紝涓嬮潰鐨勮緗嬌寰椾笁瑙掑艦琛ㄧず鐨勭澶村垎鍒悜宸﹀拰鍚戝彸銆?/ 銆銆if ( pe == PE_SpinWidgetDown ) 銆銆銆銆a.setPoints( 3,銆0, sh/2,銆sw-1, 1,銆sw-1, sh-1 ); 銆銆銆else 銆銆銆銆a.setPoints( 3,銆0, 1,銆0, sh-1,銆sw-1, sh/2 ); 銆銆........... 銆銆p->drawPolygon( a );銆銆//緇樺埗涓夎褰?br style="word-break: break-all; line-height: normal; ">銆銆}else if((pe == PE_ButtonBevel) || (pe == PE_ButtonCommand) || (pe == PE_ButtonTool) || (pe == PE_ButtonDropDown) || (pe == PE_HeaderSection)) 銆銆銆銆{ //緇樺埗鎸夐挳鐨勫悇縐嶆晥鏋滀嬌寰楃湅璧鋒潵鍑歌搗鎴栧嚬涓嬨?br style="word-break: break-all; line-height: normal; ">銆銆銆銆qDrawShadePanel(p, r, cg, flags & (Style_Sunken | Style_Down | Style_On), 銆銆1, &cg.brush(QColorGroup::Button)); 銆銆銆銆}else{ 銆銆/*瀵逛簬鍏朵粬鍩烘湰鍥懼艦鍏冪礌(PrimitiveElement)鐨勭粯鍒舵垜浠笉浣滃鐞嗗彧鏄畝鍗曠殑璋冪敤鐖剁被鐨勫嚱鏁般?/ 銆銆QWindowsStyle::drawPrimitive( pe, p, r, cg, flags, opt); 銆銆銆銆} 銆銆} 銆銆 銆銆緇樺埗鏁翠釜spinBox鐨勫嚱鏁幫細 銆銆 銆銆void CustomStyle::drawComplexControl( ComplexControl control, 銆銆銆銆銆 QPainter *p, 銆銆銆銆銆 const QWidget *widget, 銆銆銆銆銆 const QRect &r, 銆銆銆銆銆 const QColorGroup &cg, 銆銆銆銆銆 SFlags flags, 銆銆銆銆銆 SCFlags controls, 銆銆銆銆銆 SCFlags active, 銆銆銆銆銆 const QStyleOption& opt ) const 銆銆{銆銆 銆銆//涓嬮潰鐨勪唬鐮佷嬌寰梥pinWidget鍛堢幇鍨傜洿鏄劇ず鐨勯鏍艱屼笉鏄氬父鐨勬按騫蟲樉紺?br style="word-break: break-all; line-height: normal; ">銆銆if (control == CC_SpinWidget) { 銆銆const QSpinWidget * sw = (const QSpinWidget *) widget; 銆銆//緇樺埗鍚戜笂鎸夐挳閮ㄥ垎錛宑ontrols榛樿涓篠C_All錛屽嵆緇樺埗鏁翠釜spinwidget 銆銆if ( controls & SC_SpinWidgetUp ) { 銆銆 銆銆銆銆if ( sw->buttonSymbols() == QSpinWidget::PlusMinus ) 銆銆pe = PE_SpinWidgetPlus;銆// 浣跨敤鍔犲噺鍙楓 銆銆銆銆else 銆銆pe" = PE_SpinWidgetUp;銆 // 浣跨敤涓夎褰€ 銆銆銆銆QRect" re = sw->upRect(); 銆銆銆銆QColorGroup ucg = sw->isUpEnabled() ? cg : sw->palette().disabled(); 銆銆銆銆drawPrimitive(PE_ButtonBevel, p, re, ucg, flags); //緇樺埗鎸夐挳鐨勮竟妗?br style="word-break: break-all; line-height: normal; ">銆銆drawPrimitive(pe, p, re, ucg, flags); //緇樺埗鎸夐挳 銆銆} 銆銆//緇樺埗鍚戝乏鎸夐挳閮ㄥ垎銆?br style="word-break: break-all; line-height: normal; ">銆銆if ( controls & SC_SpinWidgetDown ) { 銆銆銆/*涓庣粯鍒跺悜涓嬫寜閽浉浼?/ 銆銆} 銆銆}else{//涓嶅鐞唖pinbox涔嬪鐨勫叾浠栧鏉傛帶鍒墮儴浠訛紝璋冪敤鐖剁被鍑芥暟澶勭悊 銆銆QWindowsStyle::drawComplexControl(control, p, widget, r, cg, flags, controls, active, opt); 銆銆銆銆} 銆銆} 銆銆 銆銆鑾峰彇閮ㄤ歡錛坵idget錛変腑鍚勪釜瀛愰儴浠跺竷灞淇℃伅鐨勫嚱鏁幫紝榪欎釜鍑芥暟鎺у埗鐫涓涓獁idget鐨勫瑙?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆QRect CustomStyle::querySubControlMetrics( ComplexControl control, 銆銆銆銆const QWidget *widget, 銆銆銆銆SubControl sc, 銆銆銆銆const QStyleOption &opt ) const 銆銆{ 銆銆銆銆if(control == CC_SpinWidget){ 銆銆銆銆int fw = pixelMetric( PM_SpinBoxFrameWidth, widget); 銆銆/*QSize 瀹氫箟浜岀淮瀵硅薄鐨勫ぇ灝?涔熷氨鏄鍜岄珮. 鍧愭爣綾誨瀷鏄疩COORD瀹氫箟涓篿nt)*/ 銆銆QSize bs;銆//姝ゅbs琛ㄧず姣忎釜鎸夐挳鐨勫ぇ灝?鍥犱負鏈変袱涓寜閽墍浠ヤ笅闈㈤櫎浠?. 銆銆bs.setWidth(widget->width()/2 -fw); 銆銆if(bs.width() < 8) bs.setWidth(8); 銆銆/*鎸夐挳楂樺害璁劇疆涓篞MIN{鎸夐挳瀹藉害鐨?.6鍊? 閮ㄤ歡楂樺害鐨勫洓鍒嗕箣涓} 銆銆bs.setHeight(銆QMIN(bs.width()*8/5, widget->height() / 4) ); 銆銆bs = bs.expandedTo( QApplication::globalStrut() ); 銆銆 銆銆int x = fw; 銆銆int y, ly, ry; 銆銆y = widget->height() - x - bs.height(); 銆銆ly = fw; 銆銆ry = y - fw; 銆銆//涓嬮潰瀹氫箟浜哘SpinWidget鐨勫悇涓瓙閮ㄤ歡鐨勫潗鏍囦綅緗? 銆銆switch ( sc ) { 銆銆case SC_SpinWidgetUp: 銆銆//榪斿洖鍚戝彸鎸夐挳鐨勫潗鏍囦俊鎭?br style="word-break: break-all; line-height: normal; ">銆銆銆銆return QRect(x + bs.width(), y, bs.width(), bs.height()); 銆銆case SC_SpinWidgetDown: 銆銆//榪斿洖鍚戝乏鎸夐挳鐨勫潗鏍囦俊鎭?br style="word-break: break-all; line-height: normal; ">銆銆銆銆return QRect(x, y, bs.width(), bs.height()); 銆銆case SC_SpinWidgetButtonField: 銆銆//榪斿洖涓や釜鎸夐挳鐨勬誨尯鍩熷ぇ灝?br style="word-break: break-all; line-height: normal; ">銆銆銆銆return QRect(x, y, widget->width() - 2*fw, bs.height()); 銆銆case SC_SpinWidgetEditField: 銆銆/*榪斿洖鍙紪杈戞鐨勫潗鏍囦俊鎭?/ 銆銆銆銆return QRect(fw, ly, widget->width() - 2*fw, ry); 銆銆case SC_SpinWidgetFrame: 銆銆//榪斿洖鏁翠釜spinBox鐨勫潗鏍囦俊鎭?br style="word-break: break-all; line-height: normal; ">銆銆銆銆return widget->rect(); 銆銆default: 銆銆銆銆break; 銆銆} 銆銆銆銆}else{//鍏跺畠閮ㄤ歡鐨勫竷灞淇℃伅璋冪敤鐖剁被鐨勫嚱鏁版潵澶勭悊銆?br style="word-break: break-all; line-height: normal; ">銆銆return QWindowsStyle::querySubControlMetrics(control,widget,sc,opt ); 銆銆銆銆} 銆銆銆銆return QRect(); 銆銆} 銆銆 銆銆3錛庝嬌鐢ㄦ柊椋庢牸 銆銆鏈変袱縐嶆柟娉曚嬌鐢ㄦ柊椋庢牸錛屼竴縐嶆槸浣滀負鎻掍歡錛屼竴縐嶆槸鍦ㄥ簲鐢ㄧ▼搴忛噷鐩存帴浣跨敤銆備綔涓烘彃浠剁殑椋庢牸鍙互鍦ㄤ笉鐢ㄤ慨鏀逛唬鐮併佷笉鐢ㄩ噸鏂扮紪璇戠殑鎯呭喌涓嬩嬌鐢ㄦ柊椋庢牸銆傜敱浜庢湰鏂囩潃閲嶄粙緇嶅浣曞垱寤洪鏍兼墍浠ユ垜浠嬌鐢ㄧ涓縐嶆柟娉曘傝繖縐嶆柟娉曞緢綆鍗曪紝鍙渶鍦ㄥ簲鐢ㄧ▼搴忎腑鍖呭惈鐩稿簲椋庢牸綾葷殑澶存枃浠訛紝鐒跺悗鎶妋ain錛堬級鍑芥暟絎竴鍙ュ彲鎵ц浠g爜璁劇疆涓篞Application::setStyle(new MyStyle())鍗沖彲銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆涓嬮潰鎴戜滑鐢ㄤ竴涓皬渚嬪瓙鏉ョ湅鐪嬫晥鏋溿?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆 銆銆#include 銆銆#include 銆銆#include "customstyle.h" 銆銆int main( int argc, char **argv ) 銆銆{ 銆銆銆銆QApplication::setStyle(new CustomStyle()); //浣跨敤鏂伴鏍肩被鏉ョ粯鍒剁晫闈€?br style="word-break: break-all; line-height: normal; ">銆銆銆銆QApplication a( argc, argv ); 銆銆銆銆QSpinBox spin( 0, 15 ); 銆銆銆銆spin.resize( 20, 100 ); 銆銆銆銆a.setMainWidget( &spin ); 銆銆銆銆spin.show(); 銆銆銆銆return a.exec(); 銆銆} 銆銆 銆銆鐒跺悗緙栬瘧榪愯鍗沖彲鐪嬪埌鏁堟灉銆?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆Ps. qt涓紪璇戜嬌鐢╭make錛屾楠や負 銆銆 銆銆鍒涘緩婧愮▼搴?nbsp; 銆銆鍚屼竴鐩綍涓嬭繍琛宷make -project 銆銆qmake 銆銆make 銆銆榪愯鍙墽琛岀▼搴忋?nbsp; 銆銆 銆銆4錛庤繘涓姝ュ伐浣?/strong> 銆銆1錛夐粯璁ゅぇ灝忥細緇嗗績鐨勬湅鍙嬪彲鑳界湅鍒頒笂闈㈢殑浠g爜涓湁涓鍙ワ細spin.resize( 20, 100 )錛岃繖涓鍙ヨ緗畇pinbox鐨勯暱搴︿負20璞$礌錛屽搴︿負100涓薄绱犮傚鏋滄病鏈夎繖涓鍙ョ殑璇濓紝鏄劇ず鐨勭粨鏋滀細涓鍥㈢碂錛屼袱涓寜閽嚑涔庣湅涓嶅埌 錛屽洜涓簈t榛樿鐨勬樉紺烘槸姘村鉤鏄劇ず鑰屾牴鏈病鏈夎冭檻鍨傜洿鏄劇ず鐨勬儏鍐點?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆濡傛灉鎯寵spinbox鍦ㄩ粯璁ゆ儏鍐典笅鐪嬭搗鏉ラ暱搴︾獎鑰屽搴﹂珮闇瑕佷慨鏀筈SpinBox綾諱腑鐨剆izeHint鍑芥暟錛岃繖涓嚱鏁板姛鑳芥槸璁劇疆閮ㄤ歡(widget)鐨勯粯璁ゅ昂瀵搞傚湪qt涓嚑涔庢瘡涓狦UI閮ㄤ歡綾婚兘鏈塻izeHint榪欎釜鍑芥暟鏉ヨ緗畠鑷繁鐨勯粯璁ょ殑闀垮拰瀹姐?br style="word-break: break-all; line-height: normal; ">銆銆 銆銆鏂囨湰鍨傜洿鏄劇ず錛氬湪姝や緥涓櫧鐒舵帶浠秙pinbox杈懼埌浜嗗瀭鐩存樉紺虹殑鏁堟灉錛屼絾鏄枃鏈粛鏃ф槸姘村鉤鏄劇ず鐨勶紝鍥犳瑕佽揪鍒扮湡姝g殑鍨傜洿鏄劇ず闇瑕佷簡瑙t鐨勬枃鏈樉紺烘満鍒躲傝繖浜涘伐浣滄槸寰堟湁鎰忎箟鐨勶紝鍥犱負鏈変簺姘戞棌錛堝钂欐枃錛夌殑璇█浼犵粺灝辨槸鍨傜洿鏄劇ず鐨勶紝鑰岀幇鍦ㄦ病鏈変竴涓湡姝f弧瓚寵繖縐嶉渶姹傜殑緋葷粺銆傜瑪鑰呯幇鍦ㄦ鍦ㄧ湅qt-x11-free-3.2.2鐨勬簮鐮侊紝鐩墠瀵規枃鏈樉紺烘満鍒跺彧鏈夊垵姝ヤ簡瑙o紝榪樻病鏈夌湡姝e紕娓咃紝闈炲父甯屾湜鍜屾劅鍏磋叮鐨勬湅鍙嬬浉浜掍氦嫻併佸涔犮?
杞嚜: http://www.lupaworld.com/?action-viewstutorial-itemid-7178
]]> QtWidget: 鍒╃敤Qt4.5鏂扮壒鎬у疄鐜伴叿鐐忔槑紿椾綋 http://m.shnenglu.com/biao/archive/2009/06/12/87508.html鏆楅噾瑁呭 鏆楅噾瑁呭 Fri, 12 Jun 2009 09:27:00 GMT http://m.shnenglu.com/biao/archive/2009/06/12/87508.html http://m.shnenglu.com/biao/comments/87508.html http://m.shnenglu.com/biao/archive/2009/06/12/87508.html#Feedback 5 http://m.shnenglu.com/biao/comments/commentRss/87508.html http://m.shnenglu.com/biao/services/trackbacks/87508.html Qt4.2寮曞叆浜?span style="color: rgb(0, 0, 128); ">QWidget::setWindowOpacity鍑芥暟錛?鍙互涓虹獥浣撹緗忔槑搴︼紝 浠?.0鍒?.0涔嬮棿錛?鍊艱秺灝忚秺閫忔槑銆?緇忚繃璁劇疆鐨勭獥浣撳彲浠ユ暣浣撳憟鐜伴忔槑鐨勬晥鏋溿?浣嗚繖縐嶈緗瘮杈冪矖緋欙紝 鍙兘璁句竴涓暣浣撶殑鏁堟灉錛?澶ф鍙湁姣斿鍍忔嫋鍔ㄧ殑鏃跺欒兘鐢ㄤ竴涓嬶紝 澶у鏁版椂鍊欓兘涓嶅お瀹炵敤銆?鍦≦t4.5閲屽紩鍏ヤ簡鏂扮殑紿椾綋閫忔槑鐗規э紝 鏄釜Widget鐨凙ttribute錛?鍙仛Qt::WA_TranslucentBackground 銆?榪欎釜灞炴у彲浠ヤ負姣忎釜QWidget鍗曠嫭璁劇疆錛?騫朵笖閫忔槑紼嬪害鍙互鐢ㄧ粯鍒剁殑棰滆壊鎴栧浘鐗囩殑Alpha Channel鍊兼潵鎺у埗銆?/p>
絎旇呭啓浜嗕竴涓緥瀛愭紨紺哄叾濂囧鐨勬晥鏋溿?鍏堢湅涓涓埅鍥撅細
榪欎釜鏄瑪鑰呬緥瀛愯繍琛屽嚭鏉ョ殑鏁堟灉錛?鑳屾櫙鏄痺ww.cuteqt.com闆蜂漢鐨勪富欏點?nbsp; 涓嬮潰綆鍗曚粙緇嶄竴涓嬩唬鐮佺殑瀹炵幇銆?/p>
TranslucentBackground鎺у埗紿椾綋閫忔槑灞炴?/strong> 渚嬪瓙涓葷晫闈㈢敤QWidget錛?鍏朵笂鏀劇疆鍥涗釜鎺т歡錛?涓婇潰涓や釜鏄嚜瀹氫箟鐨凲Widget瀛愮被錛?鐢ㄥ湪paintEvent涓粯鍒朵簡涓騫呴忔槑搴曡壊鐨勫浘鐗囷紝 涓婁功“CuteQt ”鍑犱釜澶у瓧錛?涓嬮潰涓や釜鏄爣鍑嗙殑QLabel鎺т歡錛?浣嗘樉紺哄嚭涓ょ涓嶅悓鐨勬晥鏋溿?/p>閫忔槑鐨勬帶浠剁殑TranslucentBackground灞炴т負true 錛堢戶鎵夸簡parent鐨勫睘鎬э級錛?鑰岄潪閫忔槑鐨勬帶浠跺垯鍦ㄤ唬鐮佷腑寮哄埗灝員ranslucentBackground璁句負浜唂alse錛?榪欐牱灝遍犲氨浜嗘湁鎰忔濈殑緇撴灉銆?浠g爜鐗囨濡備笅錛?br>label = new QLabel(”www.cuteqt.com”); label->setAttribute(Qt::WA_TranslucentBackground, false); label->setAutoFillBackground(true);
Alpha Channel鎺у埗閫忔槑搴?/strong> 灝嗚繖涓緥瀛愮◢紼嶆敼鍔紝 淇敼涓涓嬬獥浣撹儗鏅壊鐨凙lpha鍊鹼紝 浣夸箣灞曠幇涓嶅悓鐨勯忔槑搴︺?瀹炵幇鐨勬柟娉曟槸璁劇疆紿椾綋鐨刾alette灞炴э紝 涓築ackground榪欎釜ColorRole鐨勯鑹茶緗簡alpha鍊鹼紝 浠g爜鐗囨濡備笅錛?br>QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(255,0,0,200 )); setPalette(pal);
涓嬪浘鎵紺轟負alpha鍊?00鍜?00鐨勪笉鍚屾樉紺烘晥鏋溿?/p>
鎬庝箞鏍鳳紝 榪欎釜渚嬪瓙鎸烘湁鎰忔濆惂錛?璧跺揩涓嬭澆瀹屾暣鐨勪唬鐮佸涔犱竴涓嬪惂锝?鏈変換浣曚笉鏄庣櫧blog鎴朾bs鐣欒█锝?/p>
translucent.tar.gz
鏈珯鎵鏈夋枃绔犵敱鏈珯鍜屽師浣滆呬繚鐣欎竴鍒囨潈鍔涳紝浠呭湪淇濈暀鏈増鏉冧俊鎭佸師鏂囬摼鎺ャ佸師鏂囦綔鑰呯殑鎯呭喌涓嬪厑璁歌漿杞斤紝杞澆璇峰嬁鍒犳敼鍘熸枃鍐呭錛?騫朵笉寰楃敤浜庡晢涓氱敤閫斻?璋㈣阿鍚堜綔銆?/div>
]]>
QtWidget: 鑷畾涔塎odel http://m.shnenglu.com/biao/archive/2009/06/01/86346.html鏆楅噾瑁呭 鏆楅噾瑁呭 Mon, 01 Jun 2009 01:16:00 GMT http://m.shnenglu.com/biao/archive/2009/06/01/86346.html http://m.shnenglu.com/biao/comments/86346.html http://m.shnenglu.com/biao/archive/2009/06/01/86346.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/86346.html http://m.shnenglu.com/biao/services/trackbacks/86346.html 涓鐩磋寰桻t閲岀殑Model-View姒傚康鏋佸叾紲炵錛?鍥犱負鐪嬭繃寰堝涓鐭ュ崐瑙g殑source code錛?鍗存繪槸鍜嬬湅鍜嬩笉鎳傦紝鎬ヤ簡婊″ご澶ф睏涔嬩綑涓嶇鎰熷徆 鈥?鑰佷簡錛岃剳瀛愪笉澶熺敤浜嗭紒
榪欎袱澶╁洜涓哄湪鍐檙ssreader鐨勫叧緋伙紝鐢ㄥ埌浜哅VC錛?鎬葷畻鏈夌偣鍘嬪姏瀛︿範瀛︿範ModelView鐨勫ゥ縐橈紝鑰屼笖涔熷皬鏈夋敹鑾楓?璋ㄤ互姝ゆ枃鐚粰MVC鏈叆闂ㄧ殑瀛﹀紵瀛﹀錛?鍏卞媺錛?/p>
鍏堟潵璁蹭竴浜涘繀澶囩殑鑳屾櫙鐭ヨ瘑銆?鍦ㄨMVC鏃舵湁涓変釜閲嶈涓斿熀鏈殑姒傚康璐┛鏁翠釜瀛︿範榪囩▼錛欼ndex錛?Data鍜孯ole銆?灝變粠Index寮濮嬨?/p>
鎴戜滑瑙佽繃鐨刅iew鏈夊崟鍒楃殑List緇撴瀯錛?鏈夋爲鐘剁殑灞傛緇撴瀯錛岃繕鏈変袱緇寸殑琛ㄦ牸緇撴瀯錛?褰掓牴緇撳簳錛屽叾瀹炶繖浜涢兘鏄眰嬈$粨鏋勭殑鍙樹綋銆?姣斿涓嬮潰鐨勫浘錛?/p>
浠庤繖寮犲浘鍙互娓呮鐨勭悊瑙d笂鏂囩殑瑙傜偣銆?鍦ㄨ繖鍑犵緇撴瀯涓紝閮芥湁涓涓殣鍚殑鏍硅妭鐐瑰強涓庢牴鑺傜偣鑱旂郴鐨勫眰嬈$粨鏋勩?浠諱綍涓縐嶇粨鏋勪腑閮藉瓨鍦ㄨ繖鏍蜂竴涓畾寮忥紝 閫氳繃涓涓埗鑺傜偣鍙婁竴緇勬í綰靛駭鏍囷紙row,column)鍗沖彲鍞竴鐨勭‘瀹氫竴涓瓙鑺傜偣錛?榪欎釜瑙勫緥鍦ㄥ悗闈細緇忓父鐢ㄥ埌銆侷ndex鍙互綆鍗曠殑鐞嗚В鎴愯妭鐐圭殑鎸囬拡錛?鍓嶉潰璇磋繃閫氳繃涓変釜瑕佺礌鍗沖彲鍞竴鐨勭‘瀹氫竴涓妭鐐癸紝 鎵浠odel鎻愪緵鐨勮幏寰楄妭鐐筰ndex鍑芥暟浜﹀嵆鎺ュ彈row錛宑olumn鍜宲arentindex涓変釜鍙傛暟錛?鎴戜滑鍦ㄥ啓model鏃墮鍏堥渶瑕佸疄鐜拌繖鏍蜂竴涓嚱鏁幫紱
絎簩涓蹇礑ata灝辨洿綆鍗曚簡錛孷iew瑕佹樉紺烘暟鎹紝 灝辮浠嶮odel涓幓鑾峰彇闇瑕佹樉紺虹殑鏁版嵁錛?浼犱粈涔堝弬鏁板憿錛?涓嶇敤鍔ㄨ剳瀛愪篃鎯崇殑鍒板挴錛孖ndex鑲畾綆椾竴涓?浣嗕粎浠匢ndex騫朵笉澶燂紝 鍥犱負View瑕佹樉紺虹殑鍙兘涓嶆涓欏規暟鎹紝姣斿鎴戠殑鏁版嵁鍖呭惈鏂囨湰錛?鍖呭惈鍥炬爣錛屽寘鍚摼鎺ョ敋鑷充竴浜涗簩榪涘埗鏁版嵁錛?鎴戞庝箞鐭ラ亾View鎯寵鐨勬槸鍝釜鍛紵 榪欓噷灝辯敤鍒板彟澶栦竴涓蹇典簡 鈥?Role錛?Role灝辯敤鏉ヨ〃紺篤iew鍚慚odel绱㈠彇鍝釜綾誨瀷鐨勬暟鎹?View鍛婅瘔Model錛?#8220;鎴戞兂瑕丄鑺傜偣涓嬬殑N琛孧鍒楁暟鎹殑鏄劇ず鏂囨湰錛?鎴戞兂瑕丄鑺傜偣涓嬬殑N琛孧鍒楁暟鎹殑鍥炬爣…”錛?榪欐牱Model灝辨竻妤氱殑鐭ラ亾搴旇榪斿洖浠涔堟暟鎹簡銆?data()鍑芥暟鍦ㄨ繖閲屽氨鍏呭綋浜嗚繑鍥炴暟鎹殑璐d換錛岄渶瑕佹垜浠湪瀹炵幇Model鐨勬椂鍊欓噸鐐瑰疄鐜拌繖涓嚱鏁般?/p>
鐩墠瀹氫箟濂界殑Role鍙互鍙傝冧笅闈㈢殑鍥撅紙鍥句腑鍙爣鍑轟簡涓閮ㄥ垎Role錛?鍏朵粬鐨勫弬瑙佹枃妗isplayRole鐩稿叧绔犺妭錛夛細
浣滀負Model蹇呴』鍐沖畾涓篤iew鎻愪緵澶氬皯鏁版嵁錛屾彁渚涘摢浜涚被鍨嬬殑鏁版嵁錛?鍙互鍘繪弧瓚砎iew鐨勮姹傦紝涔熷彲浠ュ拷鐣ュ畠錛?鏈夊緢澶х殑鑷富鏉冦?鏈綆鍗曠殑瀹炵幇鏄笉綆′粈涔圧ole閮界粰瀹冭繑鍥炰釜瀛楃涓插氨濂戒簡銆傚懙鍛點?褰撶劧浣滀負Model涔熶笉鑳藉お鐙柇涓撹錛屽洜涓烘瘯绔熻鍜孷iew涓璧峰伐浣滐紝 涓瀹氳涓嶸iew鐨勯渶姹傜浉閰嶅悎鎵嶈銆?/p>
濂斤紝 鏈変簡榪欎簺鐭ヨ瘑鍋氬熀紜錛?鍐欎釜Model鍑烘潵鍏跺疄鏄潪甯哥畝鍗曠殑錛?紼嶅井鐢ㄧ偣蹇冨氨鑳藉簲浠樹簡錛?棣栧厛瑕侀夊鍙傝冩枃妗o紝 濡傛灉鏄互鍐欎唬鐮佷負鐩殑錛?鎺ㄨ崘榪欎竴綃囷細
Creating New Models
瑕佸啓code鐨勮瘽榪欑瘒鏈瀹炵敤錛?鍓嶉潰鐨凬澶氱瘒閮藉湪璁蹭竴浜涙蹇墊х殑鍐呭錛?澶ф妸澶ф妸鐨勮殏铓佹牱鐨勮嫳鏂囩湅浜嗗氨澶村ぇ錛?榪樻槸鐩存帴鐪嬭繖綃囨瘮杈冩湁鏁堛?綆鍗曟潵璇村垎鎴愬嚑姝ユ潵鍋氾細
絎竴銆佸垎鏋愰渶姹傦紝紜畾鍩虹被
鍏堣紜畾浣犵殑鏁版嵁鏄垪琛ㄧ粨鏋勮繕鏄眰嬈$粨鏋勶紝 闇瑕佹樉紺轟粈涔堟牱鐨勬暟鎹紝 闇涓嶉渶瑕佹敮鎸佸鍒犳垨緙栬緫鍔熻兘絳夈?鏍規嵁闇姹傛潵紜畾浠庡摢涓狹odel鐨勫熀綾繪淳鐢燂紝濡備竴涓樉紺哄瓧絎︿覆鍒楄〃鐨凪odel鍙互閲囩敤QAbstractListModel錛?鏍戠姸灞傛灝卞彧鑳戒粠QAbstractItemModel寮濮嬩簡銆?/p>
絎簩銆佸垎鏋愰渶姹傦紝紜畾闇瑕佸疄鐜板摢浜涘嚱鏁?/p>
鏍規嵁闇姹傜殑涓嶅悓錛岄渶瑕佸疄鐜扮殑鍑芥暟涔熶笉灝界浉鍚屻?nbsp;
鏈綆鍗曠殑鍙鐨勫垪琛ㄧ粨鏋勫彧闇瑕佸疄鐜頒袱涓熀鏈殑鍑芥暟錛歳owCount(), data()錛?涔熷氨鏄彧闇瑕佺煡閬撲竴鍏辨湁澶氬皯琛岋紝姣忚閮芥樉紺轟粈涔堟牱鐨勬暟鎹嵆鍙紝 鍗佸垎鏄庝簡鍚э紵 澶氬垪鐨勬儏鍐典笅瑕佸疄鐜癱olumnCount()錛?闇瑕佹樉紺篽eader鐨勮鍘誨疄鐜癶eaderData()錛?榪欎簺瑙勫垯閮藉お瀹規槗鐞嗚В浜嗐?/p>
鍏舵錛屽鏋滄槸灞傛鍒楄〃錛屽垯闇瑕佺‘瀹氳妭鐐逛箣闂寸殑灞傛鍏崇郴錛屽氨闇瑕佸疄鐜癷ndex()鍜宲arent()涓や釜鍑芥暟錛?涓涓槸閫氳繃鐖舵寚閽堝拰row,column搴ф爣紜畾涓涓瓙鑺傜偣錛屼竴涓槸閫氳繃瀛愯妭鐐圭煡閬撳畠鐨勭埗鎸囬拡銆?/p>
鍐嶆錛屽鏋滈渶瑕佷慨鏀規暟鎹紝 鍏堣閫氱煡View鎴戠殑Model鏁版嵁鏄彲浠ヨ緙栬緫鐨勶紝 灝辨槸瑕佸疄鐜癴lags()榪欎釜鍑芥暟錛?姝ゅ嚱鏁拌繑鍥炴暟鎹殑灞炴э紝濡傚彲緙栬緫銆佸彲琚変腑絳夛紱 緙栬緫涔嬪悗闇瑕佷竴涓嚱鏁板皢緙栬緫瀹屾垚鐨勬暟鎹紶閫掔粰Model錛?鎵浠ヨ繕瑕佸疄鐜頒竴涓猻etData鏂規硶銆?/p>
鍐嶅啀嬈★紝 闇瑕佸鍒犳暟鎹殑Model榪樿鍛婅瘔Model鐨勫簳灞傦細“鎴戣澧炲垹鏁版嵁浜嗭紒”錛?“鎴戣澧炲垹鐨勬暟鎹槸銆傘傘?#8221;錛?榪樻湁“鎴戝鍒犵殑鎿嶄綔宸茬粡鍋氬畬浜嗭紒”錛?榪欎簺鍒嗗埆瀵瑰簲錛氳皟鐢╞eginInsertRows()鍜宔ndInsertRows()銆?鏍規嵁絎旇呯殑緇忛獙錛岃繖閮ㄥ垎涓嶅お濂界悊瑙o紝鑰屼笖瀹規槗鍑洪敊銆?鏂囨。閲屽啓鐨勬槸鍔犳暟鎹殑鏃跺欒皟鐢╥nsertRows()錛屼笉榪囨病鏈夋彁鍒拌鍏跺疄鍦≦AbstractItemModel綾婚噷榪欎釜鍑芥暟鍙槸涓┖鏋跺瓙錛屾牴鏈氨娌℃湁瀹炵幇錛?鎵浠ヤ綘濡傛灉鎸夌収鏂囨。鍘昏皟鐢ㄨ繖涓嚱鏁伴氱煡Model鏁版嵁鍔犺繘鏉ヤ簡錛屽彧鑳藉緱鍒頒竴涓猺eturn false錛?涓嶄細鏈変換浣曞疄闄呯殑浣滅敤錛?寰堣浜哄洶鎯戙?姝g‘鐨勫仛娉曟槸鍦ㄤ綘澧炲垹鏁版嵁鐨勫墠鍚庡姞涓奲eginInsertRows鍜宔ndInsertRows鐨勮皟鐢紝榪欐牱搴曞眰灝辮兘姝g‘澶勭悊鏁版嵁鐨勫彉鍖栵紝 騫朵笖灝嗗彉鍖栧強鏃剁殑鍙嶅簲鍒癡iew涓?/p>
涓婇潰鎻愬埌鐨勫嚱鏁板湪Creating New Models榪欑瘒鏂囩珷涓兘鏈夊叿浣撶殑渚嬪瓙浠g爜鍙緵鍙傝冿紝鐩鎬俊鐓х潃渚嬪瓙鍋氫竴瀹氶毦涓嶅掑ぇ瀹躲?btw錛屽疄鐜板嚱鏁扮殑鏃跺欒娉ㄦ剰錛?鍑芥暟鐨勫0鏄庡繀欏誨拰鏂囨。涓墍鎻忚堪鐨勪竴妯′竴鏍鋒墠鑳借璋冨埌錛?榪欎篃鏄垵瀛﹁呯粡甯鎬笉娉ㄦ剰鐨勫湴鏂廣?鍦≦t鏂囨。涓紝 涓嬩竴綃囧氨璇ュ涔犲浣曚嬌鐢╒iew鍜屽垱寤鴻嚜宸辯殑View浜嗭紝榪欓儴鍒嗚繕鏈夊緟鐮旂┒銆?絳夌爺絀跺ソ浜嗗啀鎾版枃姹囨姤錛?/p>
鍘熸枃閾炬帴:http://www.cuteqt.com/blog/?p=218
]]>QtWidget: 璁劇疆QTextEdit鐨勫悇縐嶉鑹?/title> http://m.shnenglu.com/biao/archive/2009/05/28/86014.html鏆楅噾瑁呭 鏆楅噾瑁呭 Thu, 28 May 2009 08:14:00 GMT http://m.shnenglu.com/biao/archive/2009/05/28/86014.html http://m.shnenglu.com/biao/comments/86014.html http://m.shnenglu.com/biao/archive/2009/05/28/86014.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/86014.html http://m.shnenglu.com/biao/services/trackbacks/86014.html Widget::Widget(QWidget *parent)
: QWidget(parent), ui(new Ui::Widget) {
ui->setupUi(this );
connect(ui->button, SIGNAL(clicked()), this , SLOT(setColor()));
QPalette p = palette();
p.setColor(QPalette::Text, QColor(0 , 255 , 0 ));
setPalette(p); // 娉ㄦ剰榪欓噷, 淇敼浜唚idget鐨勮皟鑹叉澘, 瀛愮獥鍙i->lineEdit鐨勯鑹插彉鍖?
}
Widget::~Widget() {
delete ui;
}
void Widget::setColor() {
QPalette palette = ui->lineEdit->palette();
const QColor &color = QColorDialog::getColor(palette.color(QPalette::Background), this );
if (color.isValid()) {
palette.setColor(QPalette::Highlight, color);
ui->lineEdit->setPalette(palette);
}
}
palette.setColor(QPalette::Highlight, color);
姝ゅ:
QPalette::Highlight // 琚変腑鍚庢枃瀛楃殑鑳屾櫙鑹?
QPalette::HighlightText // 琚変腑鍚庢枃瀛楃殑鍓嶆櫙鑹?
QPalette::Text // 鏂囧瓧鐨勫墠鏅壊
QPalette::Base // QTextEdit鐨勮儗鏅壊, 榛樿鏄櫧鑹茬殑.
Role: Qt涓細鏈変竴緇勬暟鎹? 褰撳彇寰楄繖浜涙暟鎹椂, 浣跨敤鍚屾牱鐨勬柟娉曞幓鑾峰彇, 涓轟簡鎸囨槑鏄彇寰楀摢縐嶆暟鎹? 鎵浠ュ氨瀹氫箟浜哛ole榪欑姒傚康, 鏉ユ寚鏄庤鑾峰彇鐨勬暟鎹殑綾誨瀷, 渚嬪鍦╒iew涓? 濡傛湁鏄劇ず鐨勬枃瀛? 鍥炬爣, 鐪熸鏈夌敤鐨勬暟鎹?鍙兘娌℃湁鏄劇ず鍑烘潵, 鑰屾槸鍦ㄥ唴閮ㄥ瓨鍌ㄧ潃), 鍙栧緱榪欎簺鏁版嵁閮芥槸鐢ㄥ悓涓涓柟娉昫ata(), 閫氳繃鎸囨槑鏁版嵁鐨勮鑹叉潵鑾峰緱.
鎵鏈塓t紿楀彛閮ㄤ歡閮芥嫢鏈変竴涓猀Palette, 騫朵嬌鐢ㄥ畠緇樺埗鑷繁. 搴旂敤紼嬪簭榪樻湁涓涓皟鑹叉澘, 閫氳繃QApplication::palette()鏉ヨ幏寰? 淇敼涓涓獥鍙i儴浠剁殑璋冭壊鏉? 鍙獎鍝嶈繖涓獥鍙i儴浠朵互鍙婂瓙紿楀彛閮ㄤ歡(涓嶅寘鍚瓙紿楀彛, 濡傚彧鏄互浠栦綔涓虹埗瀵硅薄鏉ョ鐞嗗唴瀛? 鑰屼笉鍦ㄤ粬閲岄潰鏄劇ず), 鑰屼慨鏀瑰簲鐢ㄧ▼搴忕殑璋冭壊鏉? 浼氬獎鍝嶅埌璇ュ簲鐢ㄧ▼搴忕殑鎵鏈夌獥鍙i儴浠?/p>
]]> Qt: 鏅掓檼Pimp My Widgets澶ц禌鐨勪紭鑳滀綔鍝?/title> http://m.shnenglu.com/biao/archive/2009/05/26/85777.html鏆楅噾瑁呭 鏆楅噾瑁呭 Tue, 26 May 2009 03:45:00 GMT http://m.shnenglu.com/biao/archive/2009/05/26/85777.html http://m.shnenglu.com/biao/comments/85777.html http://m.shnenglu.com/biao/archive/2009/05/26/85777.html#Feedback 1 http://m.shnenglu.com/biao/comments/commentRss/85777.html http://m.shnenglu.com/biao/services/trackbacks/85777.html 鍘熸枃閾炬帴:http://www.cuteqt.com/blog/?p=232
澶у瀵筎rolltech鎸▉涓懼姙鐨凱imp My Widgets澶ц禌榪樻湁鍗拌薄涓嶏紵 榪欎釜姣旇禌灝樺焹钀藉畾宸茬粡鏈変竴孌墊椂闂翠簡錛?涓鐩存兂鍋氫釜璁板綍錛?鍜屽ぇ瀹跺垎浜竴涓嬭繖鍑犱釜鏈夋剰鎬濈殑紼嬪簭錛?浠婂ぉ緇堜簬鏈夋椂闂存潵鍐欏啓錛?璧拌繃璺繃涓嶈閿欒繃鍝︼綖
棣栧厛鍙兘鏈変簺鍚屽瀵硅繖涓瘮璧涜繕涓嶄簡瑙o紝 綆鍗曚粙緇嶄竴涓嬨?Pimp My Widgets澶ц禌涓繪棬鏄?#8220;鍋氬嚭鏈閰風殑Widget”錛?璇勫垎鏍囧噯鏈変簲涓柟闈細 * Best Use of Qt * Usefulness * Coding Creativity * Portability * Bling Factor 緲昏瘧鎴愪腑鏂囧氨鏄鏈澶ч檺搴︾殑鍒╃敤Qt鐨勫姛鑳姐佸啓鍑烘潵鐨勭▼搴忛潪甯稿疄鐢ㄣ佷唬鐮佹瀬鍏峰垱閫犳с佸彲縐繪錛堣法騫沖彴錛夈侀叿鐐紒 榪欐姣旇禌浠?8騫翠笅鍗婂勾寮濮嬭嚦騫村簳鍏卞巻鏃剁害涓や釜鍗婃湀鐨勬椂闂達紝 涓栫晫鍚勫湴鐨凲t鐖卞ソ鑰呭弬涓庝簡璇ユ瘮璧涖?/p>
涓嬮潰灝辨潵閫愪釜鐪嬬湅浼樿儨鑰呭惂錛?鎸夌収涓浗浜虹殑鎯緥錛?鏈濂界殑鐣欏湪鏈鍚庯紝 鍏堜粠涓涓垜瑙夊緱姣旇緝涓鑸殑寮濮嬶細 絎竴涓浠嬬粛鐨勯」鐩彨WebCarousel 錛?浣滆呮槸Matt Broadstone 銆?浠庡琛ㄦ潵鐪嬫槸涓涓晫闈㈢畝媧佺殑嫻忚鍣紝 html瑙f瀽鍜屾樉紺虹敤鐨凲t鑷甫鐨刉ebkit銆?鍏跺疄榪欎釜欏圭洰鐨勯噸鐐規槸欏甸潰鍒囨崲鐨勫姛鑳介噰鐢ㄤ簡涓涓猈eb Page Carousel錛?鏄竴涓彲鏃嬭漿鐨勬粦鍔ㄩ夊崟錛?鍏夎澶у涓嶅ソ鐞嗚В錛?鐪嬩竴涓」鐩埅鍥懼氨鏄庝簡浜嗭細
涓轟粈涔堟垜璇磋繖涓」鐩竴鑸憿錛?閭f槸鍥犱負榪欎釜鍔熻兘涓嶇畻鏂幫紝 鍦≦topia4鐗堟湰閲屽凡緇忔湁涓竴妯′竴鏍風殑涓滆タ浜嗭紝 鎴戦兘鎬鐤戣繖涓槸涓嶆槸鎶勭殑Qtopia鐨勮璁°?涓嶈繃鑲畾涓よ呯殑瀹炵幇宸埆榪樻槸寰堝ぇ鐨勩?榪欎釜欏圭洰鐢ㄤ簡GraphicsView鏉ュ疄鐜板姩鐢繪晥鏋滐紝 榪樼敤浜嗕釜絎笁鏂圭殑FadeWidget銆?濡傛灉浣犳槸絎竴涓鍒版湁浜虹敤Qt鍐欏嚭榪欐牱鐨勬晥鏋滄潵錛?榪樻槸浼氳寰楁尯鐐殑錛?/p>
欏圭洰婧愮爜涓嬭澆鍦細 http://www.qtsoftware.com/files/pimpmywidgets/pimp-my-widgets-webcarousel
絎簩涓」鐩彨Clocks 錛?浣滆?strong>Thomas Moenicke 銆?榪欎釜欏圭洰闈炲父濂界湅錛?鐢℅raphicsView瀹炵幇浜嗗ソ鍑犵涓嶅悓鏁堟灉鐨勬椂閽燂紝 榪樻湁娣¤繘娣″嚭鐨勬晥鏋滐紝 紼嬪簭濂借繕寰楁槸緹庡伐鍋氱殑濂斤紒 鐪嬪嚑涓埅鍥撅細
欏圭洰婧愮爜涓嬭澆鍦細http://www.qtsoftware.com/files/pimpmywidgets/pimp-my-widgets-clocks
絎笁涓」鐩彨AnalogPad 錛?浣滆?strong>Kaj Groenholm 錛?絎旇呮瘮杈冨枩嬈㈣繖涓▼搴忥紝 瀹冨疄鐜頒簡涓涓被浼兼墜鏈洪敭鐩樼殑浜斿悜鎿嶄綔鐩橈紝 鍦ㄦ闈笂鏄劇ず鐨勬晥鏋滃緢鏈夋剰鎬濓紝 鏈夌偣鐏墊椿鐨勫姩鐢繪晥鏋滐紝 鍍忎釜媧繪臣鐨勫皬綺劇伒錛?寰圕ute錛?鍛靛懙銆?浼拌鎴浘鐪嬩笉鍑鴻繖縐嶆晥鏋滐紝 榪樻槸闇瑕佷笅杞戒笅鏉ヨ嚜宸卞疄楠屼竴涓嬨?鎴浘鍏堟潵涓寮狅紝 璇︽儏涓嬭澆錛?br>http://www.qtsoftware.com/files/pimpmywidgets/pimp-my-widgets-analogpad
閾涢摏閾涳綖鍘嬭醬澶ф垙闅嗛噸鐧誨満浜嗭綖鏈鍚庤浠嬬粛鐨勯」鐩氨鏄湰灞婂ぇ濂栧緱涓伙紝 Jukka-Pekka Maakelaa鍐欑殑QuickCalendarView錛?榪欎釜紼嬪簭澶у鍔″繀瑕佷笅杞戒笅鏉ヤ翰韜劅鍙椼?瀹冪殑Look錛咶eel璁捐鐨勭湡鏄潪甯鎬笉閿欍?涓葷晫闈㈢湅璧鋒潵鏄釜緇忚繃閲嶆柊璁捐鐨勬棩鍘嗙晫闈紝 騫朵笉鐗規畩錛?浣嗘槸浣犲湪榪欎釜鏃ュ巻涓婄偣涓鐐瑰氨浼氬彂鐜幫紝 瀹冧細鏍規嵁浣犵殑鐐歸夊彂鐢熷姩鎬佺殑鏀瑰彉錛?鑰屼笖瀹冪殑鍔ㄦ侀潪甯告祦鐣呫佸悎鐞嗭紝 閫熷害寰堝揩錛?緇欑敤鎴風殑鎰熻寰堝ソ銆?鎴浘涔熻涓嶈兘璇存槑浠涔堥棶棰橈紝 涓嬭澆鍒拌繖閲岋細http://www.qtsoftware.com/files/pimpmywidgets/pimp-my-widgets-quickcalendarview
澶у鍚嶄笉铏氫紶鍝︼紝 澶у涓瀹氳涓嬭澆涓嬫潵瀛︿範涓涓嬩漢瀹剁殑璁捐鍜屽疄鐜幫綖 澶у寰椾富鐨勫鍝佹槸浼犺涓殑Segway® i2 Personal Transporter鍝︼綖锝炲彛姘磇ng錛?浼樿儨濂栦篃鏈塏okia鐨凬810甯﹀洖瀹訛紝 鍞夛紝 鍙儨鍥藉唴鐨凲ter娌℃湁鎶撲綇榪欎釜鏈轟細鍟婏綖锝炰笅嬈?#8230;..鍜變笅嬈′竴瀹氬姫鍔?#8230;.
]]> QtWidget: TextFinder(楂樹寒鎼滅儲鍒扮殑瀛楃涓? http://m.shnenglu.com/biao/archive/2009/05/24/85633.html鏆楅噾瑁呭 鏆楅噾瑁呭 Sun, 24 May 2009 11:36:00 GMT http://m.shnenglu.com/biao/archive/2009/05/24/85633.html http://m.shnenglu.com/biao/comments/85633.html http://m.shnenglu.com/biao/archive/2009/05/24/85633.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/85633.html http://m.shnenglu.com/biao/services/trackbacks/85633.html
瑕佸湪QTextEdit涓珮浜悳绱㈠埌鐨勫瓧絎︿覆, 浣跨敤瀹冪殑QTextDocument鍜孮TextCursor:
void TextFinder::on_findButton_clicked () {
QString searchString = ui_lineEdit->text();
QTextDocument *document = ui_textEdit->document();
bool found = false ;
if (isFirstTime == false )
document->undo();
if (searchString == "" ) {
QMessageBox::information(this , tr("Empty Search Field" ),
"The search field is empty. Please enter a word and click Find.");
} else {
QTextCursor highlightCursor(document);
QTextCursor cursor(document);
//***************寮濮?**************
cursor.beginEditBlock();
QTextCharFormat plainFormat(highlightCursor.charFormat());
QTextCharFormat colorFormat = plainFormat;
colorFormat.setForeground(Qt::red);
while (!highlightCursor.isNull() && !highlightCursor.atEnd()) {
highlightCursor = document->find(searchString, highlightCursor,
QTextDocument::FindWholeWords);
if (!highlightCursor.isNull()) {
found = true ;
highlightCursor.movePosition(QTextCursor::WordRight,
QTextCursor::KeepAnchor);
highlightCursor.mergeCharFormat(colorFormat);
}
}
cursor.endEditBlock();
//***************緇撴潫***************
isFirstTime = false ;
if (found == false ) {
QMessageBox::information(this , tr("Word Not Found" ),
"Sorry, the word cannot be found.");
}
}
}
]]> QtWidget: 榧犳爣鎷栧姩紿楀彛(娌℃湁鏍囬鏍忔椂) http://m.shnenglu.com/biao/archive/2009/05/24/85627.html鏆楅噾瑁呭 鏆楅噾瑁呭 Sun, 24 May 2009 10:19:00 GMT http://m.shnenglu.com/biao/archive/2009/05/24/85627.html http://m.shnenglu.com/biao/comments/85627.html http://m.shnenglu.com/biao/archive/2009/05/24/85627.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/85627.html http://m.shnenglu.com/biao/services/trackbacks/85627.html void ShapedClock::mousePressEvent (QMouseEvent *event) {
if (event->button() == Qt::LeftButton) {
dragPosition = event->globalPos() - frameGeometry().topLeft();
event->accept();
}
}
void ShapedClock::mouseMoveEvent (QMouseEvent *event) {
if (event->buttons() & Qt::LeftButton) {
move(event->globalPos() - dragPosition);
event->accept();
}
}
const QPoint & QMouseEvent::globalPos () const
Returns the global position of the mouse cursor at the time of the event. This is important on asynchronous window systems like X11. Whenever you move your widgets around in response to mouse events, globalPos() may differ a lot from the current pointer position QCursor::pos(), and from QWidget::mapToGlobal(pos()).
QPoint QWidget:: mapToGlobal ( const QPoint & pos ) const
Translates the widget coordinate pos to global screen coordinates. For example, mapToGlobal(QPoint(0,0)) would give the global coordinates of the top-left pixel of the widget.
QPoint QWidget:: mapFromGlobal ( const QPoint & pos ) const
Translates the global screen coordinate pos to widget coordinates.
]]>QtWidget: 鏀瑰彉搴旂敤紼嬪簭鐨勫瑙?/title> http://m.shnenglu.com/biao/archive/2009/05/24/85622.html鏆楅噾瑁呭 鏆楅噾瑁呭 Sun, 24 May 2009 09:43:00 GMT http://m.shnenglu.com/biao/archive/2009/05/24/85622.html http://m.shnenglu.com/biao/comments/85622.html http://m.shnenglu.com/biao/archive/2009/05/24/85622.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/85622.html http://m.shnenglu.com/biao/services/trackbacks/85622.html QApplication::setStyle(QStyleFactory::create("plastique" ));
QStyle * QStyleFactory::create ( const QString & key ) [static ]
浣跨敤QApplication::setStyle鍙互鏀瑰彉搴旂敤紼嬪簭鐨勫瑙? QStyleFactory涓彁渚涗簡鍑犵緇忓吀鐨勫瑙?
The valid keys can be retrieved using the keys() function. Typically they include "windows", "motif", "cde", "plastique" and "cleanlooks". Depending on the platform, "windowsxp", "windowsvista" and "macintosh" may be available. Note that keys are case insensitive.
鍙﹀榪樺彲浠ュ垱寤鴻嚜宸辯殑澶栬椋庢牸, 榪欎釜鏄浉褰撶殑澶嶆潅, 鐒跺悗浣跨敤濡?nbsp;QApplication::setStyle(new NorwegianWoodStyle) 鏉ヨ繘琛屽姞杞戒嬌鐢ㄥ瑙? Demo涓殑widgets/styles渚嬪瓙鍒涘緩浜嗕竴涓柊鐨凬orwegianWoodStyle澶栬.
]]> QtWidget: 緇檞idget鍔犱笂鑳屾櫙鍥?/title> http://m.shnenglu.com/biao/archive/2009/05/24/85620.html鏆楅噾瑁呭 鏆楅噾瑁呭 Sun, 24 May 2009 09:20:00 GMT http://m.shnenglu.com/biao/archive/2009/05/24/85620.html http://m.shnenglu.com/biao/comments/85620.html http://m.shnenglu.com/biao/archive/2009/05/24/85620.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/85620.html http://m.shnenglu.com/biao/services/trackbacks/85620.html int main (int argc, char *argv[]) {
QApplication a(argc, argv);
QWidget *widget = new QWidget();
widget->setAutoFillBackground(true ); // 榪欏彞瑕佸姞涓? 鍚﹀垯鍙兘鏄劇ず涓嶅嚭鑳屾櫙鍥?
QPalette palette = widget->palette();
palette.setBrush(QPalette::Window,
QBrush(QPixmap("1.png" ).scaled( // 緙╂斁鑳屾櫙鍥?
widget->size(),
Qt::IgnoreAspectRatio,
Qt::SmoothTransformation))); // 浣跨敤騫蟲粦鐨勭緝鏀炬柟寮?/p>
widget->setPalette(palette); // 鑷蟲, 宸茬粰widget鍔犱笂浜嗚儗鏅浘.
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(widget);
QWidget *mw = new QWidget();
mw->setLayout(layout);
mw->resize(500, 500);
//mw->setWindowFlags(Qt::FramelessWindowHint);
mw->show();
return a.exec();
}
]]>QtWidget: 鑷畾涔変笉瑙勫垯紿椾綋涓庢寜閽?/title> http://m.shnenglu.com/biao/archive/2009/05/24/85619.html鏆楅噾瑁呭 鏆楅噾瑁呭 Sun, 24 May 2009 09:13:00 GMT http://m.shnenglu.com/biao/archive/2009/05/24/85619.html http://m.shnenglu.com/biao/comments/85619.html http://m.shnenglu.com/biao/archive/2009/05/24/85619.html#Feedback 1 http://m.shnenglu.com/biao/comments/commentRss/85619.html http://m.shnenglu.com/biao/services/trackbacks/85619.html
鍏抽敭鏄嬌鐢?/strong> void QWidget::setMask ( const QBitmap & bitmap )
void QWidget::setMask ( const QRegion & region )
void QWidget::setMask ( const QRegion & region )
Causes only the parts of the widget which overlap region to be visible. 鍙湁widget涓巖egion閲嶅彔鐨勫湴鏂規墠浼氭樉紺哄嚭鏉? 鑷繁鏋勯犱竴涓猀Region灝辮浜? void ShapedClock::resizeEvent(QResizeEvent * /* event */) {
int side = qMin(width(), height());
QRegion maskedRegion(width() / 2 - side / 2, height() / 2 - side / 2, side,
side, QRegion::Ellipse);
setMask(maskedRegion);
} void QWidget::setMask ( const QBitmap & bitmap ) Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible. If the region includes pixels outside the rect() of the widget, window system controls in that area may or may not be visible, depending on the platform. 鍙湁鍦╞itmap涓儚绱犳暟鎹槸1鐨勫湴鏂規墠浼氭樉紺哄嚭widget鐨勭浉搴斿儚绱犳潵. Bitmap 灝辨槸鍍忕礌鏁版嵁鍙湁涓や釜鍊? 0鍜? (1 bit-depth, monochrome). QLabel topLevelLabel;
QPixmap pixmap(":/images/tux.png");
topLevelLabel.setPixmap(pixmap);
topLevelLabel.setMask(pixmap.mask()); // 鍙互涓嶄嬌鐢ㄨ漿鎹㈢殑, 浣跨敤涓寮犱笓闂ㄧ殑bitmap鍥劇墖. 涓婇潰鐨勮繖浜涙柟寮忕敤涓鏅氱殑QWidget灝卞彲浠ヤ簡. 褰撶劧, 瀵逛簬紿楀彛鑰岃█, 寰堝鏃跺欐垜浠鎶婂畠鐨勬爣棰樻爮鍘繪帀: widget->setWindowFlags(Qt::FramelessWindowHint); 浣嗘槸瀵逛簬涓嶈鍒欑殑QPushButton 灝辨湁浜涚壒孌? 瑕佷嬌鐢≦Icon鏉ュ鐞? button->setIcon(QIcon("xxx.png")); button->setIconSize(w, h); button->setMask(maskBitmap/*maskedRegion*/); button->setFixedSize(w, h); // 榪欎釜褰撶劧鏈濂戒嬌鐢ㄥ畠鐨刬con鐨勫ぇ灝? ]]> QtWidget: 褰換SpinBox鐨勫間負鏈灝忓兼椂, 鏄劇ず鐗規畩鐨勫瓧絎?/title> http://m.shnenglu.com/biao/archive/2009/05/24/85604.html鏆楅噾瑁呭 鏆楅噾瑁呭 Sun, 24 May 2009 07:27:00 GMT http://m.shnenglu.com/biao/archive/2009/05/24/85604.html http://m.shnenglu.com/biao/comments/85604.html http://m.shnenglu.com/biao/archive/2009/05/24/85604.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/85604.html http://m.shnenglu.com/biao/services/trackbacks/85604.html 濡傚浘鎵紺? 褰換SpinBox鐨勫間負鏈灝忓肩殑鏃跺? 涓嶆槸鏄劇ず榪欎釜鏈灝忓? 鑰屾槸鏄劇ず涓涓壒孌婄殑瀛楃涓茬敤浠ヤ唬鏇胯繖涓渶灝忓? 涔熷彧鏄疩SpinBox鐨勪竴涓嚱鏁拌皟鐢ㄨ屽凡:
void QSpinBox::setSpecialValueText(const QString &specialText);
If set, the spin box will display this text instead of a numeric value whenever the current value is equal to minimum(). Typical use is to indicate that this choice has a special (default) meaning.
]]> QtWidget: 甯︽湁鍓嶇紑鍜屽悗緙鐨凲SpinBox http://m.shnenglu.com/biao/archive/2009/05/24/85600.html鏆楅噾瑁呭 鏆楅噾瑁呭 Sun, 24 May 2009 07:08:00 GMT http://m.shnenglu.com/biao/archive/2009/05/24/85600.html http://m.shnenglu.com/biao/comments/85600.html http://m.shnenglu.com/biao/archive/2009/05/24/85600.html#Feedback 0 http://m.shnenglu.com/biao/comments/commentRss/85600.html http://m.shnenglu.com/biao/services/trackbacks/85600.html 瑕佸湪QSpinBox鐨勮緭鍏ュ尯濮嬬粓鏄劇ず鏈変竴涓"%"鐨勫悗緙鍜?$"鐨勫墠緙, 闈炲父綆鍗?
鍙渶瑕佺畝鍗曠殑璋冪敤涓や釜鍑芥暟鍗沖彲瀹炵幇:
void QSpinBox::setPrefix(const QString &prefox);
void QSpinBox::setSuffix(const QString &suffix);
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲久久成人 |
国产精品毛片大码女人 |
久久精品视频免费观看 |
亚洲国产成人一区 |
欧美视频导航 |
欧美日韩精品一二三区 |
久久人人爽人人爽 |
欧美激情综合网 |
久久久91精品国产一区二区三区 |
亚洲国产成人av |
午夜免费在线观看精品视频 |
中日韩视频在线观看 |
久久久精品动漫 |
欧美一区永久视频免费观看 |
香蕉久久久久久久av网站 |
亚洲精品美女在线 |
一区二区三区视频在线播放 |
一区二区国产精品 |
国产日产高清欧美一区二区三区 |
欧美日韩精品免费观看 |
欧美成人影音 |
欧美色一级片 |
国产偷久久久精品专区 |
国产午夜精品美女毛片视频 |
国产一区二区三区在线观看免费 |
国产精品夜夜夜 |
亚洲国产小视频 |
亚洲国产激情 |
久久av红桃一区二区小说 |
久久精品夜夜夜夜久久 |
亚洲国产欧美另类丝袜 |
亚洲第一精品久久忘忧草社区 |
欧美顶级少妇做爰 |
亚洲精品一区在线 |
老巨人导航500精品 |
99伊人成综合 |
亚洲午夜视频在线观看 |
久久婷婷久久 |
精品99视频 |
久久免费观看视频 |
欧美亚洲一区三区 |
国产性猛交xxxx免费看久久 |
国产精品99久久久久久久久久久久 |
免费人成精品欧美精品 |
久久国产婷婷国产香蕉 |
亚洲国产成人久久综合一区 |
久久在线免费观看 |
最新日韩中文字幕 |
亚洲精品少妇30p |
亚洲视频一区 |
9l国产精品久久久久麻豆 |
亚洲国产精品久久久久婷婷老年 |
国产精品欧美日韩一区 |
欧美日韩一区在线视频 |
欧美日韩色一区 |
亚洲国产成人久久综合 |
一本大道久久a久久综合婷婷 |
裸体一区二区三区 |
欧美成ee人免费视频 |
亚洲一区影音先锋 |
久久久久久午夜 |
亚洲人www |
亚洲高清视频一区 |
欧美日韩一区二区三 |
亚洲精品色图 |
亚洲永久精品国产 |
亚洲精品国产精品乱码不99 |
亚洲午夜激情免费视频 |
亚洲黄色免费 |
久久综合色一综合色88 |
久久精品一区二区三区中文字幕
|
亚洲激情女人 |
在线观看av不卡 |
久久久九九九九 |
亚洲香蕉伊综合在人在线视看 |
亚洲一区在线观看视频 |
亚洲高清视频在线观看 |
亚洲第一黄网 |
在线视频精品一 |
国产精品男人爽免费视频1 |
欧美激情综合 |
欧美体内谢she精2性欧美
|
一本色道久久综合亚洲精品高清 |
亚洲午夜视频在线观看 |
牛牛影视久久网 |
亚洲欧洲日本mm |
嫩草伊人久久精品少妇av杨幂 |
男人天堂欧美日韩 |
国产亚洲一区精品 |
欧美一区二区三区啪啪 |
中国女人久久久 |
国产精品vvv |
狠狠色噜噜狠狠色综合久 |
亚洲人精品午夜在线观看 |
欧美黄色免费 |
这里只有视频精品 |
亚洲视频播放 |
国产偷自视频区视频一区二区 |
欧美综合二区 |
久久一本综合频道 |
日韩视频精品在线 |
一本色道久久综合 |
国产欧美日韩视频在线观看 |
久久伊伊香蕉 |
一区二区三区国产 |
国产精品高清网站 |
久久亚洲精品伦理 |
欧美精品日韩精品 |
欧美专区日韩专区 |
久热精品在线视频 |
亚洲一区二区黄色 |
久久精品在线 |
在线视频你懂得一区 |
西西裸体人体做爰大胆久久久 |
国产精品久久777777毛茸茸 |
午夜亚洲激情 |
蜜臀久久99精品久久久久久9 |
99精品99 |
性感少妇一区 |
亚洲第一精品影视 |
亚洲婷婷综合久久一本伊一区 |
国产色婷婷国产综合在线理论片a |
免费一级欧美片在线观看 |
欧美日韩国产综合网 |
久久综合国产精品 |
国产精品美女www爽爽爽 |
蜜臀91精品一区二区三区 |
六月婷婷一区 |
欧美激情免费观看 |
性欧美1819sex性高清 |
91久久精品www人人做人人爽 |
亚洲巨乳在线 |
亚洲电影免费观看高清完整版在线观看
|
亚洲国产精品99久久久久久久久 |
亚洲精品五月天 |
国内精品视频在线播放 |
一本不卡影院 |
亚洲国产影院 |
久久精品一区二区国产 |
午夜在线精品 |
欧美视频免费看 |
最近中文字幕日韩精品 |
极品少妇一区二区 |
欧美中文字幕精品 |
午夜国产精品视频免费体验区 |
美日韩精品视频免费看 |
久久久久9999亚洲精品 |
国产精品久久久久久福利一牛影视 |
欧美搞黄网站 |
在线电影一区 |
久久精品夜色噜噜亚洲a∨ |
欧美一激情一区二区三区 |
欧美破处大片在线视频 |
亚洲国产高清一区二区三区 |
在线观看日产精品 |
欧美在线视频日韩 |
欧美影院午夜播放 |
欧美高清在线视频观看不卡 |
亚洲精品人人 |
亚洲网友自拍 |
欧美性jizz18性欧美 |
一区二区日本视频 |
亚洲欧美国产不卡 |
国产精品午夜视频 |
性欧美长视频 |
久久久久久久久岛国免费 |
国产亚洲毛片在线 |
亚洲欧美激情在线视频 |
亚洲欧美中文在线视频 |
欧美日韩成人网 |
欧美一区午夜视频在线观看 |
欧美一区二区免费观在线 |
国产欧美精品日韩 |
久久久久久一区二区三区 |
欧美激情偷拍 |
aa亚洲婷婷 |
国产精品一区二区在线观看不卡 |
亚洲综合电影 |
久久综合久久综合久久 |
亚洲国产欧美一区 |
久久国产精品72免费观看 |
另类天堂视频在线观看 |
亚洲精品视频二区 |
欧美亚州一区二区三区
|
亚洲国产精品一区在线观看不卡
|
日韩网站在线 |
性视频1819p久久 |
黑丝一区二区三区 |
欧美高清视频 |
亚洲一区免费观看 |
免费在线一区二区 |
欧美高清视频一区二区三区在线观看
|
一区二区三区四区五区在线 |
欧美伊人久久久久久久久影院 |
伊人久久婷婷 |
欧美日韩性生活视频 |
亚久久调教视频 |
亚洲国产精品国自产拍av秋霞 |
亚洲丝袜av一区 |
136国产福利精品导航网址应用 |