锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鎴戜釜浜哄崄鍒嗗枩鐖盦T Creator鐨処DE鐣岄潰涓庢搷浣滐紝浣嗘槸涔熻鏄皻鏈畬鍏ㄦ垚鐔熸垨鑰呮槸涓轟簡浠g爜璺ㄥ鉤鍙幫紝鏈変簺鍔熻兘騫舵病鏈夌洿鎺ユ彁渚涖?br />
姣斿Windows涓嬪仛杞歡錛岃嚦灝戜綔涓轟富紼嬪簭鎴栧惎鍔ㄧ▼搴忕殑exe鏂囦歡涓鑸兘搴旇鏈夎嚜宸辯殑鍥炬爣錛孮T Creator铏界劧鍙互杞繪澗鍦拌緗獥鍙g殑灝忓浘鏍囷紝浣嗗茍娌℃湁鎻愪緵璁劇疆exe鏂囦歡鍥炬爣鐨勫姛鑳姐?br />
鍏跺疄鍋氳搗鏉ュ茍涓嶉毦銆?br />·棣栧厛褰撶劧瑕佸噯澶囦竴涓?ico鍥炬爣鏂囦歡錛堝亣瀹氫負myIcon.ico錛夛紝灝嗗叾澶嶅埗鍒板伐紼嬬洰褰曞綋涓紙.pro鏂囦歡鎵鍦ㄧ殑鐩綍錛夈?br />·鐒跺悗鍦≦T Creator涓瑿trl+N鎴?nbsp;File - New File or Project
閫夋嫨General涓殑Text File
鍚嶇О濉啓涓?rc鏂囦歡錛堝myRc.rc錛?br />鍦ㄩ噷闈㈠彧鐢ㄥ啓涓琛?
IDI_ICON1 ICON DISCARDABLE "myIcon.ico"
·緙栬緫.pro鏂囦歡錛岄噷闈㈠簲璇ユ湁錛?br />OTHER_FILES+= \
apprc.rc
鍦ㄥ叾涓嬪啀娣誨姞涓琛岋紙濡傛灉娌℃湁涓婇潰鐨勫唴瀹逛篃娌′簨錛?
RC_FILE = \
myRc.rc
·鏈鍚庣紪璇戜竴涓嬪氨濂戒簡錛屾柊鐢熸垚鐨別xe鏂囦歡鐨勫浘鏍囧氨浼氬彉鎴恗yIcon.ico鐨勬牱瀛?/span>
]]>
鍦ㄧ紪鍐橶indows鐨勫簲鐢ㄧ▼搴忔椂錛屾垜浠湁鏃朵笉鍙伩鍏嶅湴瑕佷笌Windows騫沖彴鍥烘湁鐨刉in32 API鎵撲氦閬擄紝浣嗘槸Win32 API閲岄潰甯稿父鐢ㄥ埌鐨凥WND絳夎澶氬彞鏌凲T騫舵病鏈夈俀T浣滀負涓嬈句紭縐鐨勮法騫沖彴GUI搴擄紝涓嶅彲鑳芥湭浣滆冭檻錛岄偅涔堥渶瑕佷簰鐩歌漿鎹㈢殑鏃跺欒濡備綍鍋氬憿錛?br />
HWND杞琎Widget
QWidget *myWidget;
HWND hwnd;
myWidget=QWidget::find(hwnd);
QWidget杞琀WND
QWidget *myWidget;
HWND hwnd;
hwnd=(HWND)myWidget->winId();
QPixmap涓嶩BITMAP銆丠ICON浜掕漿
浣跨敤QPixmap::toWinHICON();QPixmap::toWinHBITMAP();
QPixmap::fromWinHICON();QPixmap::fromWinHBITMAP();鍑芥暟鐢ㄦ硶涓鐩簡鐒?br />QPixmap涓嶲Icon銆丵Image鍙互杞繪澗浜掕漿錛岃繖閲屼笉澶氳浜?/span>
]]>
{
int w = pLabel->width();
QFont font = pLabel->font();
int nFontMax = 60;
int nFontMin = 12;
int nNewWidth;
QString strText = pLabel->text();
for (int nFontSize=nFontMax;nFontSize>=nFontMin;nFontSize-=2)
{
font.setPointSize(nFontSize);
QFontMetrics fm(font);
nNewWidth = fm.width(strText);
if (nNewWidth < w)
{
pLabel->setFont(font);
break;
}
}
}
]]>
rcc -binary resource/1/app.qrc -o resource/1.rcc
璋冪敤錛?br />bool bRet = QResource::registerResource(strResourceFileName);
閲婃斁錛?br />bool bRet = QResource::unregisterResource(strResourceFileName);
Qt妯℃佸璇濇
1銆佹ā鎬佸璇濇瀹?/font>
妯℃佸璇濇錛圡odal Dialog錛変笌闈炴ā鎬佸璇濇錛圡odeless Dialog錛夌殑姒傚康涓嶆槸Qt鎵鐙湁鐨勶紝鍦ㄥ悇縐嶄笉鍚岀殑騫沖彴涓嬮兘瀛樺湪銆傚張鏈夊彨娉曟槸縐頒負妯″紡瀵硅瘽妗嗭紝鏃犳ā寮忓璇濇絳夈?/font>
鎵璋撴ā鎬佸璇濇灝辨槸鍦ㄥ叾娌℃湁琚叧闂箣鍓嶏紝鐢ㄦ埛涓嶈兘涓庡悓涓涓簲鐢ㄧ▼搴忕殑鍏朵粬紿楀彛榪涜浜や簰錛岀洿鍒拌瀵硅瘽妗嗗叧闂傚浜庨潪妯℃佸璇濇錛屽綋琚墦寮鏃訛紝鐢ㄦ埛鏃㈠彲閫夋嫨鍜岃瀵硅瘽妗嗚繘琛屼氦浜掞紝涔熷彲浠ラ夋嫨鍚屽簲鐢ㄧ▼搴忕殑鍏朵粬紿楀彛浜や簰銆?/font>
2銆佹樉紺烘ā鎬佸璇濇鐨勬柟寮?/font>
鍦≦t涓紝鏄劇ず涓涓璇濇涓鑸湁涓ょ鏂瑰紡錛屼竴縐嶆槸浣跨敤exec()鏂規硶錛屽畠鎬繪槸浠ユā鎬佹潵鏄劇ず瀵硅瘽妗嗭紱鍙︿竴縐嶆槸浣跨敤show()鏂規硶錛屽畠浣垮緱瀵硅瘽妗嗘棦鍙互妯℃佹樉紺猴紝涔熷彲浠ラ潪妯℃佹樉紺猴紝鍐沖畾瀹冩槸妯℃佽繕鏄潪妯℃佺殑鏄璇濇鐨刴odal灞炴с?/font>
鍦≦t涓紝Qt鐨勬ā鎬佷笌闈炴ā鎬佸璇濇閫夋嫨鏄氳繃鍏跺睘鎬odal鏉ョ‘瀹氱殑銆傛垜浠潵鐪嬬湅modal灞炴э紝鍏跺畾涔夊涓嬶細modal : bool榛樿鎯呭喌涓嬶紝瀵硅瘽妗嗙殑璇ュ睘鎬у兼槸false銆?/font>
榪欐椂閫氳繃show()鏂規硶鏄劇ず鐨勫璇濇灝辨槸闈炴ā鎬佺殑銆傝屽鏋滃皢璇ュ睘鎬у艱緗負true錛屽氨璁劇疆鎴愪簡妯℃佸璇濇錛屽叾浣滅敤浜庢妸QWidget::windowModality灞炴ц緗負Qt::ApplicationModal銆?/font>
鑰屼嬌鐢╡xec()鏂規硶鏄劇ず瀵硅瘽妗嗙殑璇濓紝灝嗗拷鐣odal灞炴у肩殑璁劇疆騫舵妸瀵硅瘽妗嗚緗負妯℃佸璇濇銆?/font>
涓鑸嬌鐢╯etModal()鏂規硶鏉ヨ緗璇濇鐨刴odal灞炴с?/font>
3銆佸叿浣撳嚱鏁?/font>
鎴戜滑鎬葷粨涓涓嬭緗璇濇涓烘ā鎬佺殑鏂規硶銆?/font>
濡傛灉瑕佽緗負妯℃佸璇濇錛屾渶綆鍗曠殑灝辨槸浣跨敤exec()鏂規硶錛岀ず渚嬩唬鐮佸涓嬶細
MyDialog myDlg; myDlg.exec();
涔熷彲浠ヤ嬌鐢╯how()鏂規硶錛岀ず渚嬩唬鐮佸涓嬶細
MyDialog myDlg; myDlg.setModal(true); myDlg.show();
濡傛灉瑕佽緗負闈炴ā鎬佸璇濇錛屽繀欏諱嬌鐢╯how()鏂規硶錛岀ず渚嬩唬鐮佸涓嬶細
MyDialog myDlg; myDlg.setModal(false);
//鎴栬?/font>
myDlg.setModal();
myDlg.show();
鍐嶆寮鴻皟錛岀洰鍓嶆湁鐨勬湅鍙嬪浜庢ā鎬佸璇濇鍜岄潪妯℃佸璇濇鐨勮璇嗘湁璇В錛岃涓轟嬌鐢╯how()鏂規硶鏄劇ず鐨勫氨鏄潪妯℃佸璇濇錛岃繖鏄笉姝g‘鐨勩?/font>
4銆佺獥鍙g疆鍓?/font>
灝忚創澹細鏈夋椂鍊欙紝鎴戜滑闇瑕佷竴涓璇濇浠ラ潪妯℃佺殑褰㈠紡鏄劇ず錛屼絾鍙堥渶瑕佸畠鎬誨湪鎵鏈夌獥鍙g殑鏈鍓嶉潰錛岃繖鏃跺彲浠ラ氳繃濡備笅浠g爜璁劇疆錛?/font>
MyDialog myDlg; myDlg.setModal(false);
//鎴栬?/font>
mDlg.setModal(); myDlg.show();
//鍏抽敭鏄笅闈㈣繖琛?/font>
myDlg.setWindowFlags(Qt::WindowStaysOnTopHint);
杞嚜錛歨ttp://blog.163.com/qimo601@126/blog/static/1582209320130119254624/
鍒氬Qt鏃訛紝鍙戠幇浠g爜閲屽埌澶勯兘鏄痭ew錛岃屽熀鏈笂瑙佷笉鍒癲elete錛岀櫨搴﹀緱鐭ワ紝Qt涓唴瀛樼鐞嗘満鍒訛細褰搉ew涓涓璞℃寚瀹氱埗浜叉椂錛岀埗浜茶閿姣佹椂錛屼細涓騫舵妸鑷璞¢攢姣併?/p>
鍦≦T鐨勭▼搴忎腑緇忓父浼氱湅鍒板彧鏈塶ew鑰屼笉delete鐨勬儏鍐碉紝鍏跺疄鏄洜涓篞T鏈変竴濂楀洖鏀跺唴瀛樼殑鏈哄埗錛屼富瑕佺殑瑙勫垯濡備笅錛?/p>
1.鎵鏈夌戶鎵胯嚜QOBJECT綾葷殑綾伙紝濡傛灉鍦╪ew鐨勬椂鍊欐寚瀹氫簡鐖朵翰錛岄偅涔堝畠鐨勬竻鐞嗘椂鍦ㄧ埗浜茶delete鐨勬椂鍊檇elete鐨勶紝鎵浠ュ鏋滀竴涓▼搴忎腑錛屾墍鏈夌殑QOBJECT綾婚兘鎸囧畾浜嗙埗浜詫紝閭d箞浠栦滑鏄細涓綰х駭鐨勫湪鏈涓婇潰鐨勭埗浜叉竻鐞嗘椂琚竻鐞嗭紝鑰屼笉鐢ㄨ嚜宸辨竻鐞嗭紱
2.紼嬪簭閫氬父鏈涓婂眰浼氭湁涓涓牴鐨凲OBJECT錛屽氨鏄斁鍦╯etCentralWidget錛堬級涓殑閭d釜QOBJECT錛岃繖涓猀OBJECT鍦╪ew鐨勬椂鍊欎笉蹇呮寚瀹氬畠鐨勭埗浜詫紝鍥犱負榪欎釜璇彞灝嗚瀹氬畠鐨勭埗浜蹭負鎬葷殑QAPPLICATION錛屽綋鏁翠釜QAPPLICATION娌℃湁鏃跺畠灝辮嚜鍔ㄦ竻鐞嗭紝鎵浠ヤ篃鏃犻渶娓呯悊銆?榪欓噷QT4鍜孮T3鏈変笉鍚岋紝QT3涓敤鐨勬槸setmainwidget鍑芥暟錛屼絾鏄繖涓嚱鏁頒笉浣滀負閲岄潰QOBJECT鐨勭埗浜詫紝鎵浠T3涓繖涓《灞傜殑QOBJECT瑕佽嚜琛岄攢姣侊級銆?/p>
3.榪欐槸鏈変漢鍙兘浼氶棶閭e鏋滄垜鑷delete鎺夎繖浜決T鎺ョ璐熻矗閿姣佺殑鎸囬拡浜嗕細鍑虹幇浠涔堟儏鍐靛憿錛屽鏋滄椂榪欐牱鐨勮瘽錛屾甯告儏鍐典笅QT鐨勬嫢鏈夎繖涓璞$殑閭d釜鐖朵翰浼氱煡閬撹繖浠朵簨鎯咃紝瀹冧細鐩村埌瀹冪殑鍎垮瓙琚綘鐩存帴DELETE浜嗭紝榪欐牱瀹冧細灝嗚繖涓効瀛愮Щ鍑哄畠鐨勫垪琛紝騫朵笖閲嶆柊鏋勫緩鏄劇ず鍐呭錛屼絾鏄洿鎺ヨ繖鏍峰仛鏃舵湁椋庨櫓鐨勶紒涔熷氨鏄璇寸殑涓嬩竴鏉?/p>
4.褰撲竴涓猀OBJECT姝e湪鎺ュ彈浜嬩歡闃熷垪鏃跺鏋滀腑閫旇浣燚ELETE鎺変簡錛屽氨鏄嚭鐜伴棶棰樹簡錛屾墍浠T涓緩璁ぇ瀹朵笉瑕佺洿鎺ELETE鎺変竴涓猀OBJECT錛屽鏋滀竴瀹氳榪欐牱鍋氾紝瑕佷嬌鐢≦OBJECT鐨刣eleteLater()鍑芥暟錛屽畠浼氳鎵鏈変簨浠墮兘鍙戦佸畬涓鍒囧鐞嗗ソ鍚庨┈涓婃竻闄よ繖鐗囧唴瀛橈紝鑰屼笖灝辯畻璋冪敤澶氭鐨刣eletelater涔熶笉浼氭湁闂銆?/p>
5.QT涓嶅緩璁湪涓涓猀OBJECT 鐨勭埗浜茬殑鑼冨洿涔嬪鎸佹湁瀵硅繖涓猀OBJECT鐨勬寚閽堬紝鍥犱負濡傛灉榪欐牱澶栭潰鐨勬寚閽堝緢鍙兘涓嶄細瀵熻榪欎釜QOBJECT琚噴鏀撅紝浼氬嚭鐜伴敊璇紝濡傛灉涓瀹氳榪欐牱錛屽氨瑕佽浣忎綘鍦ㄥ摢榪欐牱鍋氫簡錛岀劧鍚庢姄浣忛偅涓浣犺繚瑙勪嬌鐢ㄧ殑QOBJECT鐨刣estroyed錛堬級淇″彿錛屽綋瀹冩病鏈夋椂璧跺揩緗浂浣犵殑澶栭儴鎸囬拡銆傚綋鐒舵垜璁や負榪欐牱鍋氭槸鍙婂叾楹葷儲涔熶笉絎﹀悎楂樻晥鐜囩紪紼嬭鑼冪殑錛屾墍浠ュ鏋滆榪欐牱鍦ㄥ閮ㄦ寔鏈塓OBJECT鐨勬寚閽堬紝寤鴻浣跨敤寮曠敤鎴栬呯敤鏅鴻兘鎸囬拡錛屽QT灝辨彁渚涗簡鏅鴻兘鎸囬拡閽堝榪欎簺鎯呭喌錛岃鏈鍚庝竴鏉°?/p>
6.QT涓殑鏅鴻兘鎸囬拡灝佽涓篞Pointer綾伙紝鎵鏈塓OBJECT鐨勫瓙綾婚兘鍙互鐢ㄨ繖涓櫤鑳芥寚閽堟潵鍖呰錛屽緢澶氱敤娉曚笌鏅氭寚閽堜竴鏍鳳紝鍙互璇﹁QT assistant
杞嚜:http://blog.csdn.net/leonwei/article/details/3703598
(1) 淇″彿鍜屾Ы鏄疩t緙栫▼鐨勪竴涓噸瑕侀儴鍒嗐傝繖涓満鍒跺彲浠ュ湪瀵硅薄涔嬮棿褰兼騫朵笉浜嗚В鐨勬儏鍐典笅灝嗗畠浠殑琛屼負鑱旂郴璧鋒潵銆?/span>
妲藉拰鏅氱殑c++鎴愬憳鍑芥暟寰堝儚銆傚畠浠彲浠ユ槸铏氬嚱鏁幫紙virtual錛夛紝涔熷彲琚噸杞斤紙overload錛夛紝
鍙互鏄叕鏈夌殑錛坧ublic錛夛紝淇濇姢鐨勶紙protective錛夛紝涔熷彲鏄鏈夌殑錛坧rivate錛夛紝瀹冧滑鍙互鍍忎換浣昪++鎴愬憳鍑芥暟
涓鏍瘋璋冪敤錛屽彲浠ヤ紶閫掍換浣曠被鍨嬬殑鍙傛暟銆備笉鍚屽湪浜庝竴涓Ы鍑芥暟鑳藉拰涓涓俊鍙風浉榪炴帴錛屽彧瑕佷俊鍙峰彂鍑轟簡錛岃繖涓Ы鍑?/span>
鏁板氨浼氳嚜鍔ㄨ璋冪敤銆?/span>
(2)connect鍑芥暟璇硶濡備笅錛?/span>
connect(sender, SIGNAL(signal), receiver, SLOT(slot));
sender鍜宺eceiver鏄疩Object瀵硅薄鎸囬拡錛?/span>
signal鍜宻lot鏄笉甯﹀弬鏁扮殑鍑芥暟鍘熷瀷銆?/span>
SIGNALE()鍜孲LOT()瀹忕殑浣滅敤鏄妸浠栦滑杞崲鎴愬瓧絎︿覆銆?/span>
(3)淇″彿鍜屾Ы瀹為檯浣跨敤涓鑰冭檻鐨勪竴浜涜鍒欙細
1銆佷竴涓俊鍙峰彲浠ヨ繛鎺ュ埌澶氫釜妲斤細
connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));
connect(slider, SIGNAL(valueChanged(int)),this, SLOT(updateStatusBarIndicator(int)));
褰撲俊鍙峰彂鍑哄悗錛屾Ы鍑芥暟閮戒細琚皟鐢紝浣嗘槸璋冪敤鐨勯『搴忔槸闅忔満鐨勶紝涓嶇‘瀹氱殑銆?/span>
2銆佸涓俊鍙峰彲浠ヨ繛鎺ュ埌涓涓Ы
connect(lcd, SIGNAL(overflow()), this, SLOT(handleMathError()));
connect(calculator, SIGNAL(divisionByZero()),this, SLOT(handleMathError()));
浠諱綍涓涓俊鍙峰彂鍑猴紝妲藉嚱鏁伴兘浼氭墽琛屻?/span>
3銆佷竴涓俊鍙峰彲浠ュ拰鍙︿竴涓俊鍙風浉榪?/span>
connect(lineEdit, SIGNAL(textChanged(const QString &)),
this, SIGNAL(updateRecord(const QString &)))錛?/span>
絎竴涓俊鍙峰彂鍑哄悗錛岀浜屼釜淇″彿涔熷悓鏃跺彂閫併傞櫎姝や箣澶栵紝淇″彿涓庝俊鍙瘋繛鎺ヤ笂鍜屼俊鍙峰拰妲借繛鎺ョ浉鍚屻?/span>
4銆佽繛鎺ュ彲浠ヨ鍒犻櫎
disconnect(lcd, SIGNAL(overflow()),this, SLOT(handleMathError()));
榪欎釜鍑芥暟寰堝皯浣跨敤錛屼竴涓璞″垹闄ゅ悗錛孮t鑷姩鍒犻櫎榪欎釜瀵硅薄鐨勬墍鏈夎繛鎺ャ?/span>
(4)淇″彿鍜屾Ы鍑芥暟蹇呴』鏈夌潃鐩稿悓鐨勫弬鏁扮被鍨嬶紝榪欐牱淇″彿鍜屾Ы鍑芥暟鎵嶈兘鎴愬姛榪炴帴錛?/span>
connect(ftp, SIGNAL(rawCommandReply(int, const QString &)),this, SLOT(processReply(int, const QString &)));
(5)濡傛灉淇″彿閲岀殑鍙傛暟涓暟澶氫簬妲藉嚱鏁扮殑鍙傛暟錛屽浣欑殑鍙傛暟琚拷鐣ワ細
connect(ftp, SIGNAL(rawCommandReply(int, const QString &)),this, SLOT(checkErrorCode(int)));
濡傛灉鍙傞熺被鍨嬩笉鍖歸厤錛屾垨鑰呬俊鍙峰拰妲戒笉瀛樺湪錛屽湪debug鐘舵佹椂錛孮t浼氬湪榪愯鏈熼棿緇欏嚭璀﹀憡銆?/span>
濡傛灉淇″彿鍜屾Ы榪炴帴鏃跺寘鍚簡鍙傛暟鐨勫悕瀛楋紝Qt灝嗕細緇欏嚭璀﹀憡銆?/span>
(6)涓嶄粎鏈夋帶浠剁殑淇″彿鍜屾Ы錛?/span>淇″彿鍜屾Ы鏈哄埗鍙互瀹炵幇鍦ㄤ換浣曚粠QObject緇ф壙鐨勫瓙綾諱腑銆?/span>
娉ㄦ剰錛屽彧鏈塶ewSalary != mySalary鏃舵墠鍙戝嚭salary-Changed()淇″彿錛岃繖鏍烽伩鍏嶄簡姝誨驚鐜殑鍑虹幇銆?/span>
鍦ㄤ笂闈㈢殑瀹氫箟涓紝signals 鏄?QT 鐨勫叧閿瓧錛岃岄潪 C/C++ 鐨勩?br />鎺ヤ笅鏉ョ殑涓琛?void mySignal() 瀹氫箟浜嗕俊鍙?mySignal錛岃繖涓俊鍙鋒病鏈夋惡甯﹀弬鏁幫紱
鎺ヤ笅鏉ョ殑涓琛?void mySignal(int x) 瀹氫箟 浜嗛噸鍚嶄俊鍙?mySignal錛屼絾鏄畠鎼哄甫涓涓暣褰㈠弬鏁幫紝榪欐湁鐐圭被浼間簬 C++ 涓殑铏氬嚱鏁般?br />浠庡艦寮忎笂 璁蹭俊鍙風殑澹版槑涓庢櫘閫氱殑 C++ 鍑芥暟鏄竴鏍風殑錛屼絾鏄俊鍙峰嵈娌℃湁鍑芥暟浣撳畾涔夛紝鍙﹀錛屼俊鍙風殑榪斿洖 綾誨瀷閮芥槸 void錛屼笉瑕佹寚鏈涜兘浠庝俊鍙瘋繑鍥炰粈涔堟湁鐢ㄤ俊鎭?br />淇″彿鐢?moc 鑷姩浜х敓錛屽畠浠笉搴旇鍦?.cpp 鏂囦歡涓疄鐜般?br />
妲?br />妲芥槸鏅氱殑 C