锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日本免费久久久久久久网站,亚洲精品美女久久久久99小说,伊人久久精品无码av一区http://www.shnenglu.com/Cunch/category/20604.html涓嶆儨濂嬫枟zh-cnSat, 13 Jul 2013 14:29:31 GMTSat, 13 Jul 2013 14:29:31 GMT60Qt鍙嶅皠http://www.shnenglu.com/Cunch/archive/2013/07/13/201779.htmlCunchCunchSat, 13 Jul 2013 14:19:00 GMThttp://www.shnenglu.com/Cunch/archive/2013/07/13/201779.htmlhttp://www.shnenglu.com/Cunch/comments/201779.htmlhttp://www.shnenglu.com/Cunch/archive/2013/07/13/201779.html#Feedback0http://www.shnenglu.com/Cunch/comments/commentRss/201779.htmlhttp://www.shnenglu.com/Cunch/services/trackbacks/201779.html綆浠?/strong>

鏈枃涓昏璁茶ВQt鏄浣曞疄鐜板弽灝勶紝浠ュ強涓鐐圭偣鍙嶅皠浣跨敤鐨勫皬蹇冨緱銆?/p>

鏂囩珷姒傝

Qt鍙嶅皠鍐呭箷灝忕

璇︾粏鍐呭

鍙嶅皠鍓嶆湡鍑嗗

寰楀埌娉ㄥ唽鐨勭被鎴愬憳鍙橀噺

寰楀埌娉ㄥ唽鐨勭被鎴愬憳鍑芥暟

璁塊棶綾繪垚鍛樺睘鎬э紙get,set錛?/p>

璋冪敤娉ㄥ唽鐨勫嚱鏁?/p>

鍙嶅皠搴旂敤

鎬葷粨

Qt鍙嶅皠鍐呭箷灝忕

Qt鍙嶅皠鏈哄埗鏄熀浜巑oc(meta object compiler)瀹炵幇鐨?鍦ㄨ繖閲屽鎻掍竴鍙ワ紙鍙互璇碤t鎵鏈塁++娌℃湁鐨勭壒鎬э紝鍑犱箮閮藉拰榪欎釜鏈夊叧緋伙級銆備絾鏄渶瑕佹敞鎰忕殑鏄疩t鎻愪緵鐨勫弽灝勫紡鍩烘湰鐨勫弽灝勶紝涓嶆敮鎸佺被鐨勫弽灝勶紝榪欎釜涓嶫ava錛孋#榪樻槸鏈夊樊鍒殑銆?/p>

moc璁茶В

閫氬父C++鐨勭紪璇戣繃紼嬩負

棰勫鐞?>緙栬瘧->閾炬帴->榪愯

Qt緙栬瘧鐨勮繃紼嬩腑錛屾湁涓涓猰oc鐨勮繃紼?鍦≦t宸ョ▼鏋勫緩榪囩▼涓殑qmake鍏跺疄灝辨槸騫茶繖涓簨鐨勩俶oc->棰勫鐞?>緙栬瘧->閾炬帴->榪愯銆?/p>

鍦╩oc榪囩▼涓紝闇瑕佸鐞嗙殑浜嬫儏濡備笅錛?/p>

1銆?璇嗗埆涓浜涚壒孌婄殑瀹廞_OBJECT銆丵_PROPERTY銆丵_INVOKABLE銆傘傘? 濡傛灉紕板埌榪欎簺鍏抽敭瀛楋紝Qt鑷劧灝變細鍘葷敓鎴愬搴旂殑moc鏂囦歡銆?/p>

2銆?slot錛宻ignal鑷劧涔熸槸濡傛銆?/p>

3銆?uidesigner錛屽悓鏍蜂篃鏄湪榪欎釜闃舵澶勭悊鐨?

璇︾粏鍐呭

 

鍙嶅皠鍓嶆湡鍑嗗

1銆?棣栧厛寰楃戶鎵夸簬Q_Object,鍚屾椂闇瑕佸湪class涓姞鍏_OBJECT錛屼絾鏄疩_Object鐨勬瀯閫犲嚱鏁伴粯璁ゆ槸縐佹湁鐨勪笉璁╃戶鎵褲?

鍦ㄧ被涓洿鎺ヤ嬌鐢≦_GADGET涔熷彲浠ュ疄鐜板弽灝勶紝銆傘傘傛嵁璇村彧鑳藉疄鐜伴儴鍒嗗姛鑳斤紝鐩墠鎴戝彧瀹炵幇鍒拌兘閬嶅巻鎴愬憳灞炴э紝鍑芥暟錛屼絾鏄笉鑳借闂叾涓殑鍊箋?

榪欎釜榪囩▼鍏跺疄灝辨槸瀹氫箟QMetaObject鐨勮繃紼嬶紝鍏蜂綋瑙丵t婧愮爜

2銆?娉ㄥ唽綾繪垚鍛樺彉閲忛渶瑕佷嬌鐢≦_PROPERTY

Q_PROPERTY( type member READ get WRITE set) 鍏朵腑READ,WRITE鏄叧閿瓧

Type琛ㄧず鎴愬憳鐨勭被鍨嬶紙涓嶆敮鎸佽嚜瀹氫箟綾誨瀷錛屽Qt寰堝鍩烘湰綾誨瀷閮芥敮鎸侊級;

Member浠h〃浣犵粰璇ユ垚鍛樺彟澶栬搗鐨勫悕瀛楋紝鍙互鍜屽彉閲忓悕涓嶅悓錛沢et錛宻et灝辨槸鑷繁鍦–++鍑芥暟閲岄潰瀹氫箟鐨勫熀鏈殑璁塊棶鍑芥暟鍚嶏紝涓嶉渶瑕佸啓鍙傛暟銆傜洿鎺ヤ笂浠g爜錛?

3銆?娉ㄥ唽綾繪垚鍛樺嚱鏁?

濡傛灉浣犲笇鏈涜繖涓嚱鏁拌兘澶熻鍙嶅皠錛岄偅涔堝緢綆鍗曪紝鍙渶瑕佸湪綾葷殑鍑芥暟澹版槑鍓嶅姞鍏_INVOKABLE鍏抽敭瀛椼?

渚嬪Q_INVOKABLE int func( QString flag );

銆銆銆#include <QObject>
銆銆銆class MyClass : public QObject
銆銆銆{
銆銆銆 Q_OBJECT
銆銆銆 Q_PROPERTY(int Member1 READ Member1 WRITE setMember1 )
銆銆銆 Q_PROPERTY(int Member2 READ Member2 WRITE setMember2 )
銆銆銆 Q_PROPERTY(QString MEMBER3 READ Member3 WRITE setMember3 )
銆銆銆public:
銆銆銆 explicit MyClass(QObject *parent = 0);
銆銆銆signals:
銆銆銆public slots:
銆銆銆public:
銆銆銆 Q_INVOKABLE int Member1();
銆銆銆 Q_INVOKABLE int Member2();
銆銆銆 Q_INVOKABLE QString Member3();
銆銆銆 Q_INVOKABLE void setMember1( int mem1 );
銆銆銆 Q_INVOKABLE void setMember2( int mem2 );
銆銆銆 Q_INVOKABLE void setMember3( const QString& mem3 );
銆銆銆 Q_INVOKABLE int func( QString flag );
銆銆銆private:
銆銆銆 int m_member1;
銆銆銆 int m_member2;
銆銆銆 QString m_member3;
銆銆銆};

寰楀埌娉ㄥ唽鐨勭被鎴愬憳鍙橀噺

銆銆MyClass theObj;
 const QMetaObject* metaObj = theObj.metaObject();
 //1.閬嶅巻綾葷殑灞炴?/span>
 int propertyCnt = metaObj->propertyCount();
 for ( int i = 0; i < propertyCnt; ++ i )
 {
 QMetaProperty oneProperty = metaObj->property( i );
 cout << " name: " << oneProperty.name();
 cout << " type: " << QVariant::typeToName( oneProperty.type()) << "\n";
銆銆}

涓昏鎬濊礬灝辨槸寰楀埌鍏跺厓瀵硅薄錛屽緱鍒板叾鍏冨睘鎬э紝鐒跺悗灝辮兘寰楀埌浣犻渶瑕佺殑淇℃伅錛屽叿浣撶殑璁塊棶鍑芥暟鏈塶ame,type,闇瑕佹敞鎰忕殑鏄緱鍒扮殑type鏄灇涓懼鹼紝榪樺湪Qt鎻愪緵浜唗ypeToName鐨勫嚱鏁幫紝浣犲彲浠ュ緱鍒版兂瑕佺殑錛堜緥濡備笉鏄┖媧炵殑2錛岃屾槸”int”錛夈?/p>

寰楀埌娉ㄥ唽鐨勭被鎴愬憳鍑芥暟

//2.閬嶅巻綾葷殑鍑芥暟鎴愬憳
 int methodCnt = metaObj->methodCount();
 for ( int idx = 0; idx < methodCnt; ++ idx )
 {
 QMetaMethod oneMethod = metaObj->method( idx );
 cout << "--------begin-------" << "\n";
 cout << " typeName: " << oneMethod.typeName() << "\n";
 cout << " signature: " << oneMethod.signature() << "\n";
 cout << " methodType: " << oneMethod.methodType() << "\n";
 cout << "--------end---------" << "\n";
銆銆}

鍜岄亶鍘嗙被灞炴т竴鑷達紝鍏跺疄灝辨槸鏍規嵁鍏冨璞★紝寰楀埌鍏冨嚱鏁?

鍏朵腑typeName浠h〃榪斿洖綾誨瀷錛宻ignature鍙殑鏄嚱鏁扮殑鍘熻矊錛宮ethodType浠h〃鍑芥暟鐨勭被鍨嬶紝鍦≦t涓垎涓轟笁綾伙紙妲斤紝淇″彿錛屾櫘閫氬嚱鏁幫級銆?/p>

璁塊棶綾繪垚鍛樺睘鎬э紙get,set錛?/strong>

//3.浣跨敤鍙嶅皠
 cout << "-------test property-----------" << "\n";
 MyClass newObj;
 newObj.setProperty("Member1", 66);
 cout << newObj.property( "Member1" ).toString().toStdString() << "\n";
 cout << newObj.Member1() << "\n";
銆cout << "--------end----------" << "\n";

鍦ㄨ繖閲屼嬌鐢ㄧ殑鏄疩Object鐨刾roperty() 鍜宻etProperty鏂規硶錛屾潵璁塊棶鎴愬憳淇℃伅銆備絾鏄浜庝嬌鐢≦_GADGET瀹忕殑綾伙紝鏄笉鑳戒嬌鐢ㄨ繖涓柟娉曠殑錛岃繕鍦ㄥ鎵捐В鍐蟲柟娉曪紝鍩烘湰鎬濊礬褰撶劧鏄噸鍐欍?/p>

璋冪敤娉ㄥ唽鐨勫嚱鏁?/strong>

銆銆int ret;
銆銆MyClass newObj;
 newObj.setMember1( 20 );
 newObj.setMember2( 50 );
 QMetaObject::invokeMethod( &newObj, "func", Qt::DirectConnection,
 Q_RETURN_ARG(int, ret ),
 Q_ARG(QString, "+"));

//鏅氬嚱鏁扮殑璋冪敤

鍦∕yClass涓紝鎴戜滑瀹氫箟浜唅nt func( QString flag );榪欎釜鍑芥暟錛屽埄鐢ㄥ弽灝勭殑璋冪敤鏂瑰紡濡備笂錛屼富瑕佹槸鐞嗚ВinvokeMethod鐨勭敤娉曪紝鍏朵腑Qt::DirectConnection鏄嚱鏁扮殑鎵ц鏂瑰紡錛屽垎涓猴紙寮傛鍜屽悓姝ワ級錛孮_RETURN_ARG鏄繑鍥炲弬鏁幫紝Q_ARG鏄紶鍏ュ弬鏁幫紝闇瑕佹寜鍑芥暟澹版槑涓弬鏁扮殑欏哄簭渚濇浼犲叆錛孮t鏈澶氭敮鎸?涓弬鏁幫紝瀵逛簬涓鑸殑搴旂敤娌℃湁闂銆傝繕鏈夌枒闂紝璇風Щ姝ュ叿瑙丵t寮哄ぇ鐨勫府鍔╂枃妗c?/p>

鍙嶅皠鐨勫簲鐢?/strong>

鍙嶅皠鍙嶅皠錛屽氨鎴戠洰鍓嶇殑璁ょ煡姘村鉤鏉ョ湅錛岄氳繃浣跨敤瀛楃涓詫紝鏉ュ疄鐜板嚱鏁扮殑閫氱敤鍖栬皟鐢紝渚嬪浣犲彲浠ュ埄鐢ㄥ弽灝勬妸寰堝鍑芥暟鏀劇疆鍒版暟緇勪腑錛屽疄鐜頒竴嬈¢亶鍘嗭紝鍏ㄩ儴璋冪敤銆?/p>

鐩墠鎴戣鍒扮殑澶у鏄埄鐢ㄥ弽灝勬潵鎿嶄綔鏁版嵁搴擄紝渚嬪hibernate錛屽叾瀹炲彲浠ュ埄鐢≦t鐨勫弽灝勶紝蹇熷疄鐜版墍璋撶殑hibernate,(鏈榪戣嚜宸辯嫭绔嬪疄鐜頒簡涓濂楋紝寰堟柟渚?銆?/p>

鎬葷粨

榪欑瘒鏂囩珷涓昏璁蹭簡濡備綍浣跨敤Qt鏉ュ疄鐜板弽灝勶紝鍦ㄥ疄鐢ㄨ搴︿笂鏉ヨ錛屾垜浠笉闇瑕佷簡瑙t鏄庝箞瀹炵幇鍙嶅皠鐨勶紝瀵逛簬鎬庝箞鐢ㄤ笂闈㈣鐨勫緢娓呮浜嗐傚ぇ瀹舵湁浠涔堢殑鏂扮殑鎯蟲硶錛屽笇鏈涜兘鎻愬嚭鏉ワ紝鏉ョ數璇峰挩璇?br /> <levard@gmail.com>



Cunch 2013-07-13 22:19 鍙戣〃璇勮
]]>
香蕉aa三级久久毛片| 91精品国产综合久久香蕉 | 99久久这里只精品国产免费| 国产精品久久久久久久久软件| 亚洲va久久久噜噜噜久久| 久久精品国产亚洲网站| 中文字幕无码av激情不卡久久| 久久夜色精品国产噜噜亚洲AV| 国产69精品久久久久9999| 人妻无码αv中文字幕久久| 久久久久一级精品亚洲国产成人综合AV区| 四虎久久影院| 99国内精品久久久久久久| 欧美va久久久噜噜噜久久| 久久青青草原精品国产软件| 国产91色综合久久免费| 亚洲乱码中文字幕久久孕妇黑人| 久久久久女教师免费一区| 久久99热国产这有精品| 麻豆一区二区99久久久久| 亚洲色欲久久久久综合网| 精品久久久无码中文字幕天天| 久久一日本道色综合久久| 久久人人爽人人爽人人片AV麻烦| 欧美激情精品久久久久久久| 久久精品国产福利国产秒| 久久久久人妻精品一区| 少妇高潮惨叫久久久久久 | 九九久久自然熟的香蕉图片| 亚洲午夜久久久久久噜噜噜| 少妇熟女久久综合网色欲| 思思久久精品在热线热| 久久久高清免费视频| 亚洲日本va中文字幕久久| 精品国产99久久久久久麻豆| 东方aⅴ免费观看久久av| 精品久久久无码21p发布| 亚洲AV日韩精品久久久久久久| 影音先锋女人AV鲁色资源网久久| 奇米影视7777久久精品| 国产精品久久久久影院色|