锘??xml version="1.0" encoding="utf-8" standalone="yes"?>99精品久久久久久久婷婷,久久精品国产精品亚洲精品,国产69精品久久久久观看软件http://www.shnenglu.com/aaxron/category/17807.html璁板綍淇鐨勫嵃璁? zh-cnTue, 31 May 2016 17:35:29 GMTTue, 31 May 2016 17:35:29 GMT60QT鐢熸垚鍦╓indows涓嬫湁鍥炬爣鐨別xe鏂囦歡(IDE=QT Creator)http://www.shnenglu.com/aaxron/archive/2016/05/30/213607.html澶╀笅澶╀笅Mon, 30 May 2016 05:51:00 GMThttp://www.shnenglu.com/aaxron/archive/2016/05/30/213607.htmlhttp://www.shnenglu.com/aaxron/comments/213607.htmlhttp://www.shnenglu.com/aaxron/archive/2016/05/30/213607.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/213607.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/213607.htmlQT鐢熸垚鍦╓indows涓嬫湁鍥炬爣鐨別xe鏂囦歡(IDE=QT Creator)
鎴戜釜浜哄崄鍒嗗枩鐖盦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>

澶╀笅 2016-05-30 13:51 鍙戣〃璇勮
]]>
QWidget涓嶩WND鐨勪簰鐩歌漿鎹?/title><link>http://www.shnenglu.com/aaxron/archive/2016/05/30/213606.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Mon, 30 May 2016 05:51:00 GMT</pubDate><guid>http://www.shnenglu.com/aaxron/archive/2016/05/30/213606.html</guid><wfw:comment>http://www.shnenglu.com/aaxron/comments/213606.html</wfw:comment><comments>http://www.shnenglu.com/aaxron/archive/2016/05/30/213606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/aaxron/comments/commentRss/213606.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aaxron/services/trackbacks/213606.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">QWidget涓嶩WND鐨勪簰鐩歌漿鎹?br /><br />鍦ㄧ紪鍐橶indows鐨勫簲鐢ㄧ▼搴忔椂錛屾垜浠湁鏃朵笉鍙伩鍏嶅湴瑕佷笌Windows騫沖彴鍥烘湁鐨刉in32 API鎵撲氦閬擄紝浣嗘槸Win32 API閲岄潰甯稿父鐢ㄥ埌鐨凥WND絳夎澶氬彞鏌凲T騫舵病鏈夈俀T浣滀負涓嬈句紭縐鐨勮法騫沖彴GUI搴擄紝涓嶅彲鑳芥湭浣滆冭檻錛岄偅涔堥渶瑕佷簰鐩歌漿鎹㈢殑鏃跺欒濡備綍鍋氬憿錛?br /><br />HWND杞琎Widget<br />QWidget </span><span style="color: #000000">*</span><span style="color: #000000">myWidget;<br />HWND hwnd;<br />myWidget</span><span style="color: #000000">=</span><span style="color: #000000">QWidget::find(hwnd);<br /><br /><br />QWidget杞琀WND<br />QWidget </span><span style="color: #000000">*</span><span style="color: #000000">myWidget;<br />HWND hwnd;<br />hwnd</span><span style="color: #000000">=</span><span style="color: #000000">(HWND)myWidget</span><span style="color: #000000">-></span><span style="color: #000000">winId();<br />QPixmap涓嶩BITMAP銆丠ICON浜掕漿<br /><br />浣跨敤QPixmap::toWinHICON();QPixmap::toWinHBITMAP();<br />QPixmap::fromWinHICON();QPixmap::fromWinHBITMAP();鍑芥暟鐢ㄦ硶涓鐩簡鐒?br />QPixmap涓嶲Icon銆丵Image鍙互杞繪澗浜掕漿錛岃繖閲屼笉澶氳浜?/span></div><img src ="http://www.shnenglu.com/aaxron/aggbug/213606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2016-05-30 13:51 <a href="http://www.shnenglu.com/aaxron/archive/2016/05/30/213606.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>SetAutoFonthttp://www.shnenglu.com/aaxron/archive/2013/11/28/204501.html澶╀笅澶╀笅Thu, 28 Nov 2013 07:56:00 GMThttp://www.shnenglu.com/aaxron/archive/2013/11/28/204501.htmlhttp://www.shnenglu.com/aaxron/comments/204501.htmlhttp://www.shnenglu.com/aaxron/archive/2013/11/28/204501.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/204501.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/204501.htmlvoid SetAutoFont(QLabel* pLabel)
{
    
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;
        }
    }
}


澶╀笅 2013-11-28 15:56 鍙戣〃璇勮
]]>
Qt灝嗚祫婧愭斁鍦ㄥ閮ㄨ皟鐢?/title><link>http://www.shnenglu.com/aaxron/archive/2013/11/26/204463.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Tue, 26 Nov 2013 09:42:00 GMT</pubDate><guid>http://www.shnenglu.com/aaxron/archive/2013/11/26/204463.html</guid><wfw:comment>http://www.shnenglu.com/aaxron/comments/204463.html</wfw:comment><comments>http://www.shnenglu.com/aaxron/archive/2013/11/26/204463.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/aaxron/comments/commentRss/204463.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aaxron/services/trackbacks/204463.html</trackback:ping><description><![CDATA[<p><font color="#000000" face="Verdana">緙栬瘧璧勬簮鏂囦歡錛?br />rcc -binary resource/0/app.qrc -o resource/0.rcc<br />rcc -binary resource/1/app.qrc -o resource/1.rcc<br /><br />璋冪敤錛?br />bool bRet =  QResource::registerResource(strResourceFileName);<br /><br />閲婃斁錛?br />bool bRet =  QResource::unregisterResource(strResourceFileName);<br /><br /></font></p> <p><font color="#000000" face="Verdana"><br /></font> </p><img src ="http://www.shnenglu.com/aaxron/aggbug/204463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2013-11-26 17:42 <a href="http://www.shnenglu.com/aaxron/archive/2013/11/26/204463.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>閿洏浜嬩歡鐨勪紶閫?/title><link>http://www.shnenglu.com/aaxron/archive/2013/07/04/201511.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Thu, 04 Jul 2013 04:02:00 GMT</pubDate><guid>http://www.shnenglu.com/aaxron/archive/2013/07/04/201511.html</guid><wfw:comment>http://www.shnenglu.com/aaxron/comments/201511.html</wfw:comment><comments>http://www.shnenglu.com/aaxron/archive/2013/07/04/201511.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/aaxron/comments/commentRss/201511.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aaxron/services/trackbacks/201511.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">class</span><span style="color: #000000"> Q_GUI_EXPORT QWidget : </span><span style="color: #0000ff">public</span><span style="color: #000000"> QObject, </span><span style="color: #0000ff">public</span><span style="color: #000000"> QPaintDevice<br />{<br /></span><span style="color: #0000ff">protected</span><span style="color: #000000">:<br />    QWidget(QWidgetPrivate </span><span style="color: #000000">&</span><span style="color: #000000">d, QWidget</span><span style="color: #000000">*</span><span style="color: #000000"> parent, Qt::WindowFlags f);<br />}<br /><br /></span><span style="color: #008000">/*</span><span style="color: #008000">! <br />\internal<br /></span><span style="color: #008000">*/</span><span style="color: #000000"><br />QWidget::QWidget(QWidgetPrivate </span><span style="color: #000000">&</span><span style="color: #000000">dd, QWidget</span><span style="color: #000000">*</span><span style="color: #000000"> parent, Qt::WindowFlags f)<br />    : QObject(dd, </span><span style="color: #000000">0</span><span style="color: #000000">), QPaintDevice()<br />{<br />    Q_D(QWidget);<br />    QT_TRY {<br />        d</span><span style="color: #000000">-></span><span style="color: #000000">init(parent, f);<br />    } QT_CATCH(<img src="http://www.shnenglu.com/Images/dot.gif" alt="" />) {<br />        QWidgetExceptionCleaner::cleanup(</span><span style="color: #0000ff">this</span><span style="color: #000000">, d_func());<br />        QT_RETHROW;<br />    }<br />}<br /><br /><br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">閿洏浜嬩歡鐨勪紶閫?/span><span style="color: #008000"><br /></span><span style="color: #0000ff">extern</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">C</span><span style="color: #000000">"</span><span style="color: #000000"> LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)<br />{<br />        </span><span style="color: #0000ff">case</span><span style="color: #000000"> WM_CHAR: {<br />            MSG msg1;<br />            </span><span style="color: #0000ff">bool</span><span style="color: #000000"> anyMsg </span><span style="color: #000000">=</span><span style="color: #000000"> PeekMessage(</span><span style="color: #000000">&</span><span style="color: #000000">msg1, msg.hwnd, </span><span style="color: #000000">0</span><span style="color: #000000">, </span><span style="color: #000000">0</span><span style="color: #000000">, PM_NOREMOVE);<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (anyMsg </span><span style="color: #000000">&&</span><span style="color: #000000"> msg1.message </span><span style="color: #000000">==</span><span style="color: #000000"> WM_DEADCHAR) {<br />                result </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">; </span><span style="color: #008000">//</span><span style="color: #008000"> consume event since there is a dead char next</span><span style="color: #008000"><br /></span><span style="color: #000000">                </span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />            }<br />            QWidget </span><span style="color: #000000">*</span><span style="color: #000000">g </span><span style="color: #000000">=</span><span style="color: #000000"> QWidget::keyboardGrabber();<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (g </span><span style="color: #000000">&&</span><span style="color: #000000"> qt_get_tablet_widget() </span><span style="color: #000000">&&</span><span style="color: #000000"> hwnd </span><span style="color: #000000">==</span><span style="color: #000000"> qt_get_tablet_widget()</span><span style="color: #000000">-></span><span style="color: #000000">winId()) {<br />                </span><span style="color: #008000">//</span><span style="color: #008000"> if we get an event for the internal tablet widget,<br />                </span><span style="color: #008000">//</span><span style="color: #008000"> then don't send it to the keyboard grabber, but<br />                </span><span style="color: #008000">//</span><span style="color: #008000"> send it to the widget itself (we don't use it right<br />                </span><span style="color: #008000">//</span><span style="color: #008000"> now, just in case).</span><span style="color: #008000"><br /></span><span style="color: #000000">                g </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />            }<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (g)<br />                widget </span><span style="color: #000000">=</span><span style="color: #000000"> (QETWidget</span><span style="color: #000000">*</span><span style="color: #000000">)g;<br />            </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (QApplication::activePopupWidget())  <br />                widget </span><span style="color: #000000">=</span><span style="color: #000000"> (QETWidget</span><span style="color: #000000">*</span><span style="color: #000000">)QApplication::activePopupWidget()</span><span style="color: #000000">-></span><span style="color: #000000">focusWidget()<br />                       </span><span style="color: #000000">?</span><span style="color: #000000"> (QETWidget</span><span style="color: #000000">*</span><span style="color: #000000">)QApplication::activePopupWidget()</span><span style="color: #000000">-></span><span style="color: #000000">focusWidget()<br />                       : (QETWidget</span><span style="color: #000000">*</span><span style="color: #000000">)QApplication::activePopupWidget();<br />            </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (QApplication::focusWidget())  </span><span style="color: #008000">//</span><span style="color: #008000">榪欓噷鏉′歡涓虹湡</span><span style="color: #008000"><br /></span><span style="color: #000000">                widget </span><span style="color: #000000">=</span><span style="color: #000000"> (QETWidget</span><span style="color: #000000">*</span><span style="color: #000000">)QApplication::focusWidget();  </span><span style="color: #008000">//</span><span style="color: #008000">寰楀埌鍏鋒湁杈撳叆鐒︾偣鐨剋idget</span><span style="color: #008000"><br /></span><span style="color: #000000">            </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #000000">!</span><span style="color: #000000">widget </span><span style="color: #000000">||</span><span style="color: #000000"> widget</span><span style="color: #000000">-></span><span style="color: #000000">internalWinId() </span><span style="color: #000000">==</span><span style="color: #000000"> GetFocus()) </span><span style="color: #008000">//</span><span style="color: #008000"> We faked the message to go to exactly that widget.</span><span style="color: #008000"><br /></span><span style="color: #000000">                widget </span><span style="color: #000000">=</span><span style="color: #000000"> (QETWidget</span><span style="color: #000000">*</span><span style="color: #000000">)widget</span><span style="color: #000000">-></span><span style="color: #000000">window();<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (widget</span><span style="color: #000000">-></span><span style="color: #000000">isEnabled())<br />                result </span><span style="color: #000000">=</span><span style="color: #000000"> sm_blockUserInput<br />                            </span><span style="color: #000000">?</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000"><br />                            : qt_keymapper_private()</span><span style="color: #000000">-></span><span style="color: #000000">translateKeyEvent(widget, msg, g </span><span style="color: #000000">!=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">);<br />            </span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />        }<br />    </span><span style="color: #008000">//</span><span style="color: #008000">..</span><span style="color: #008000"><br /></span><span style="color: #000000">}<br /><br /><br /></span><span style="color: #0000ff">extern</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">C</span><span style="color: #000000">"</span><span style="color: #000000"> LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)<br />{<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (qt_is_translatable_mouse_event(message)) {<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (QApplication::activePopupWidget() </span><span style="color: #000000">!=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">) { </span><span style="color: #008000">//</span><span style="color: #008000"> in popup mode</span><span style="color: #008000"><br /></span><span style="color: #000000">            POINT curPos </span><span style="color: #000000">=</span><span style="color: #000000"> msg.pt;<br />            QWidget</span><span style="color: #000000">*</span><span style="color: #000000"> w </span><span style="color: #000000">=</span><span style="color: #000000"> QApplication::widgetAt(curPos.x, curPos.y);<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (w)<br />                widget </span><span style="color: #000000">=</span><span style="color: #000000"> (QETWidget</span><span style="color: #000000">*</span><span style="color: #000000">)w;<br />        }<br /><br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #000000">!</span><span style="color: #000000">qt_tabletChokeMouse) {<br />        result </span><span style="color: #000000">=</span><span style="color: #000000"> widget</span><span style="color: #000000">-></span><span style="color: #000000">translateMouseEvent(msg); <br />    }<br />    }<br />}<br /><br /></span></div><img src ="http://www.shnenglu.com/aaxron/aggbug/201511.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2013-07-04 12:02 <a href="http://www.shnenglu.com/aaxron/archive/2013/07/04/201511.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞嫻呰Qt鐨勪簨浠跺鐞嗘満鍒朵簩http://www.shnenglu.com/aaxron/archive/2013/07/04/201510.html澶╀笅澶╀笅Thu, 04 Jul 2013 04:00:00 GMThttp://www.shnenglu.com/aaxron/archive/2013/07/04/201510.htmlhttp://www.shnenglu.com/aaxron/comments/201510.htmlhttp://www.shnenglu.com/aaxron/archive/2013/07/04/201510.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/201510.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/201510.html嫻呰Qt鐨勪簨浠跺鐞嗘満鍒朵簩鎴戜滑鍦ㄤ笂鏂囦腑錛屼粙緇嶄簡Qt妗嗘灦鐨勪簨浠跺鐞嗘満鍒訛細浜嬩歡鐨勪駭鐢熴佸垎鍙戙佹帴鍙楀拰澶勭悊錛屽茍浠ヨ紿楃郴緇熼紶鏍囩偣鍑籕Widget涓轟緥錛屽浠g爜榪涜浜嗗墫鏋愶紝鍚戝ぇ瀹跺垎鏋愪簡Qt妗嗘灦濡備綍閫氳繃Event ...  闃呰鍏ㄦ枃

澶╀笅 2013-07-04 12:00 鍙戣〃璇勮
]]>
[杞琞嫻呰Qt鐨勪簨浠跺鐞嗘満鍒朵竴http://www.shnenglu.com/aaxron/archive/2013/07/04/201509.html澶╀笅澶╀笅Thu, 04 Jul 2013 03:59:00 GMThttp://www.shnenglu.com/aaxron/archive/2013/07/04/201509.htmlhttp://www.shnenglu.com/aaxron/comments/201509.htmlhttp://www.shnenglu.com/aaxron/archive/2013/07/04/201509.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/201509.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/201509.html嫻呰Qt鐨勪簨浠跺鐞嗘満鍒?nbsp;涓 .    娣卞叆浜嗚В浜嬩歡澶勭悊緋葷粺瀵逛簬姣忎釜瀛︿範Qt浜烘潵璇撮潪甯擱噸瑕侊紝鍙互璇達紝Qt鏄互浜嬩歡椹卞姩鐨刄I宸ュ叿闆嗐?nbsp;澶у...  闃呰鍏ㄦ枃

澶╀笅 2013-07-04 11:59 鍙戣〃璇勮
]]>
[鍘焆Qt浜嬩歡澶勭悊鏈哄埗嫻呮瀽http://www.shnenglu.com/aaxron/archive/2013/06/27/201340.html澶╀笅澶╀笅Thu, 27 Jun 2013 03:10:00 GMThttp://www.shnenglu.com/aaxron/archive/2013/06/27/201340.htmlhttp://www.shnenglu.com/aaxron/comments/201340.htmlhttp://www.shnenglu.com/aaxron/archive/2013/06/27/201340.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/201340.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/201340.html[鍘焆Qt浜嬩歡澶勭悊鏈哄埗嫻呮瀽    浜嬩歡澶勭悊鏈哄埗嫻呮瀽鏄氳繃WM_ACTIVATE娑堟伅鏉ュ垎鏋愮殑//璋冪敤鍫嗘爤WinMainCRTStartup()&nbs...  闃呰鍏ㄦ枃

澶╀笅 2013-06-27 11:10 鍙戣〃璇勮
]]>
Qt妯℃佸璇濇 http://www.shnenglu.com/aaxron/archive/2013/04/24/199670.html澶╀笅澶╀笅Wed, 24 Apr 2013 01:38:00 GMThttp://www.shnenglu.com/aaxron/archive/2013/04/24/199670.htmlhttp://www.shnenglu.com/aaxron/comments/199670.htmlhttp://www.shnenglu.com/aaxron/archive/2013/04/24/199670.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/199670.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/199670.html 

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/

 



澶╀笅 2013-04-24 09:38 鍙戣〃璇勮
]]>
win32涓嬩嬌鐢╣etopt,浠巕t涓紕浜嗕釜getop.chttp://www.shnenglu.com/aaxron/archive/2013/04/16/199482.html澶╀笅澶╀笅Tue, 16 Apr 2013 07:24:00 GMThttp://www.shnenglu.com/aaxron/archive/2013/04/16/199482.htmlhttp://www.shnenglu.com/aaxron/comments/199482.htmlhttp://www.shnenglu.com/aaxron/archive/2013/04/16/199482.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/199482.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/199482.html//getopt.h
#pragma once
#ifdef __cplusplus
extern "C" {
#endif

extern int opterr;        /* if error message should be printed */
extern int optind;        /* index into parent argv vector */
extern int optopt;            /* character checked for validity */
extern int optreset;        /* reset getopt */
extern char    *optarg;        /* argument associated with option */
int getopt(int argc, char * const argv[], const char *optstring);

#ifdef __cplusplus
}    
#endif
getopt.c 浠巕t涓紕鐨?涓琛岄兘娌℃敼

//getopt.c 浠巕t涓紕鐨?涓琛岄兘娌℃敼

/* $Id: getopt.c,v 1.2 2005/07/07 16:34:06 dron Exp $ */

/*
 * Copyright (c) 1987, 1993, 1994
 *    The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 
*/

#if 0
static char sccsid[] = "@(#)getopt.c    8.3 (Berkeley) 4/27/95";
__RCSID("$NetBSD: getopt.c,v 1.26 2003/08/07 16:43:40 agc Exp $");
#endif

#include <stdio.h>
#include <string.h>

int    opterr = 1,        /* if error message should be printed */
    optind = 1,        /* index into parent argv vector */
    optopt,            /* character checked for validity */
    optreset;        /* reset getopt */
char    *optarg;        /* argument associated with option */

#define    BADCH    (int)'?'
#define    BADARG    (int)':'
#define    EMSG    ""

/*
 * getopt --
 *    Parse argc/argv argument vector.
 
*/
int getopt(int argc, char * const argv[], const char *optstring)
{
    static char *place = EMSG;        /* option letter processing */
    char *oli;                /* option letter list index */

    if (optreset || *place == 0) {        /* update scanning pointer */
        optreset = 0;
        place = argv[optind];
        if (optind >= argc || *place++ != '-') {
            /* Argument is absent or is not an option */
            place = EMSG;
            return (-1);
        }
        optopt = *place++;
        if (optopt == '-' && *place == 0) {
            /* "--" => end of options */
            ++optind;
            place = EMSG;
            return (-1);
        }
        if (optopt == 0) {
            /* Solitary '-', treat as a '-' option
               if the program (eg su) is looking for it. 
*/
            place = EMSG;
            if (strchr(optstring, '-') == NULL)
                return -1;
            optopt = '-';
        }
    } else
        optopt = *place++;

    /* See if option letter is one the caller wanted */
    if (optopt == ':' || (oli = strchr(optstring, optopt)) == NULL) {
        if (*place == 0)
            ++optind;
        if (opterr && *optstring != ':')
            (void)fprintf(stderr,
                                      "unknown option -- %c\n", optopt);
        return (BADCH);
    }

    /* Does this option need an argument? */
    if (oli[1] != ':') {
        /* don't need argument */
        optarg = NULL;
        if (*place == 0)
            ++optind;
    } else {
        /* Option-argument is either the rest of this argument or the
           entire next argument. 
*/
        if (*place)
            optarg = place;
        else if (argc > ++optind)
            optarg = argv[optind];
        else {
            /* option-argument absent */
            place = EMSG;
            if (*optstring == ':')
                return (BADARG);
            if (opterr)
                (void)fprintf(stderr,
                                        "option requires an argument -- %c\n",
                                        optopt);
            return (BADCH);
        }
        place = EMSG;
        ++optind;
    }
    return (optopt);            /* return option letter */
}

gnu getopt鐨勪嬌鐢?
//main.c
#include<stdio.h>
#ifdef WIN32
    #include "getopt.h"
#else
    #include<unistd.h>
#endif

int main(int argc,char **argv)
{
    int ch;
    opterr = 1;
    while((ch = getopt(argc,argv,"a:bcde"))!= -1)
    {
        switch(ch)
        {
            case 'a': printf("option a:'%s'\n",optarg); break;
            case 'b': printf("option b :b\n"); break;
            default:  printf("other option :%c\n",ch);
        }
    }

    printf("optopt +%c\n",optopt);
    //system("pause");
    return 0;

}


澶╀笅 2013-04-16 15:24 鍙戣〃璇勮
]]>
QLCDNumberhttp://www.shnenglu.com/aaxron/archive/2012/10/19/193514.html澶╀笅澶╀笅Fri, 19 Oct 2012 03:18:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/10/19/193514.htmlhttp://www.shnenglu.com/aaxron/comments/193514.htmlhttp://www.shnenglu.com/aaxron/archive/2012/10/19/193514.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/193514.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/193514.html//DigitalClock.h
#pragma once
#include 
<QtGui>
#include 
<QLCDNumber>

class DigitalClock : public QLCDNumber 
{
public:
    DigitalClock(QWidget 
*parent=0);

protected:
    
void timerEvent(QTimerEvent *);
private:
    
bool isColon;
};


//DigitalClock.cpp
#include "DigitalClock.h"
#include 
<QDateTime>

DigitalClock::DigitalClock(QWidget 
*parent) : QLCDNumber(parent) 
{
    
this->isColon = false;
    
this->setFrameStyle(QFrame::Panel | QFrame::Raised);
    
this->setNumDigits(11);
    
    
//QPalette pe;
    
//pe.setColor(QPalette::WindowText,Qt::blue);
    
//setPalette(pe);
    startTimer(500);

    setStyleSheet(
"color:#0000ff;");
    
//setStyleSheet("color:blue;");
}


void DigitalClock::timerEvent(QTimerEvent *e) {
    isColon 
= !isColon;

    QString timeString 
= QTime::currentTime().toString().left(5);

    QDate date 
= QDate::currentDate();
    QString dateString;
    dateString.sprintf( 
" %2d-%2d", date.month(), date.day());

    QString displayString 
= timeString;

    
if (!isColon) {
        displayString[
2= ' ';
    }
    display(displayString);
}


//main.cpp
#include "DigitalClock.h"
#include 
<QApplication>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    DigitalClock 
*digitalClock = new DigitalClock;

    digitalClock
->resize(300,80);
    digitalClock
->setWindowTitle("QTimer");

    digitalClock
->show();

    
return app.exec();
}


澶╀笅 2012-10-19 11:18 鍙戣〃璇勮
]]>
QT璁劇疆QLabel涓瓧浣撶殑棰滆壊http://www.shnenglu.com/aaxron/archive/2012/10/19/193512.html澶╀笅澶╀笅Fri, 19 Oct 2012 03:14:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/10/19/193512.htmlhttp://www.shnenglu.com/aaxron/comments/193512.htmlhttp://www.shnenglu.com/aaxron/archive/2012/10/19/193512.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/193512.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/193512.htmlQT璁劇疆QLabel涓瓧浣撶殑棰滆壊

鍏跺疄錛岃繖鏄竴涓瘮杈冨父瑙佺殑闂銆傚ぇ鑷存湁鍑犵鍋氭硶錛氫竴鏄嬌鐢╯etPalette()鏂規硶錛涗簩鏄嬌鐢ㄦ牱寮忚〃錛涗笁鏄彲浠ヤ嬌鐢≦Style錛涘洓鏄彲浠ュ湪鍏朵腑浣跨敤涓浜涚畝鍗曠殑HTML鏍峰紡銆?br />涓嬮潰灝卞叿浣撹涓涓嬶紝涔熺畻鏄釜鎬葷粨鍚с?br />
絎竴縐嶏紝浣跨敤setPalette()鏂規硶濡備笅錛?br />QLabel 
*label = new QLabel(tr("Hello Qt!"));
QPalette pe;
pe.setColor(QPalette::WindowText,Qt::white);
label
->setPalette(pe);

絎簩縐嶏紝浣跨敤鏍峰紡琛ㄥ涓嬶細
setStyleSheet(
"color:red;"); 
//setStyleSheet("color:#ff6600;");

絎笁縐嶏紝浣跨敤QStyle錛屽湪Qt Demo涓湁涓涓緢濂界殑璁茶ВQStyle鐨勪緥瀛愶紝鍙互鍙傝冨涔犮?br />
絎洓縐嶏紝浣跨敤涓浜涚畝鍗曠殑HTML鏍煎紡錛?br />QLabel 
*label = new QLabel("<h2><i>Hello</i><font color=red>Qt!</font></h2>");


澶╀笅 2012-10-19 11:14 鍙戣〃璇勮
]]>
鐢ㄦ爣鍑咰++瀹炵幇淇″彿涓庢Ы鏈哄埗http://www.shnenglu.com/aaxron/archive/2012/10/17/193420.html澶╀笅澶╀笅Wed, 17 Oct 2012 08:11:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/10/17/193420.htmlhttp://www.shnenglu.com/aaxron/comments/193420.htmlhttp://www.shnenglu.com/aaxron/archive/2012/10/17/193420.html#Feedback1http://www.shnenglu.com/aaxron/comments/commentRss/193420.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/193420.html#include <algorithm>
#include 
<iostream>
#include 
<vector>
using namespace std;

template
<typename tParam>
class SlotBase
{
public:
    
virtual void Exec(tParam param) = 0;
};



template
<class T, class tParam>
class SlotImpl : public SlotBase<tParam>
{
public:
    SlotImpl(T
* pObj, void (T::*func)(tParam) )
    {
        m_pObj 
= pObj;
        m_Func 
= func;
    }

    
void Exec( tParam param)
    {
        (m_pObj
->*m_Func)(param);
    }

private:
    T
* m_pObj;
    
void (T::*m_Func)(tParam);
};





template
<class tParam>
class Slot
{
public:
    template
<class T>
    Slot(T
* pObj, void (T::*func)(tParam))
    {
        m_pSlotBase 
= new SlotImpl<T,tParam>(pObj, func);
    }

    
~Slot()
    {
        delete m_pSlotBase;
    }

    
void Exec(tParam param1)
    {
        m_pSlotBase
->Exec(param1);
    }

private:
    SlotBase
<tParam>* m_pSlotBase;
};



template
<typename tParam>
class Signal
{
public:
    template
<class T>
    
void Bind(T* pObj, void (T::*func)(tParam))
    {
        m_pSlotSet.push_back( 
new Slot<tParam>(pObj,func) );
    }

    
~Signal()
    {
        
for(int i=0;i<(int)m_pSlotSet.size();i++)
        {
            delete m_pSlotSet[i];
        }
    }

    
void operator()(tParam param1)
    {
        
for(int i=0;i<(int)m_pSlotSet.size();i++)
        {
            m_pSlotSet[i]
->Exec(param1);
        }
    }

private:
    vector
< Slot<tParam>* > m_pSlotSet;
};

#define Connect( sender, signal, receiver, method) ( (sender)->signal.Bind(receiver, method) )

class A
{
public:
    
void FuncOfA(int param)
    {
        printf(
"A::FuncOfA(%d)\n", param);
    }
};

class B
{
public:
    
void FuncOfB(int param)
    {
        printf(
"B::FuncOfB(%d)\n", param);
    }
};

class C
{
public:
    
void SetValue(int value)
    {
        ValueChanged(value);
    }

public:
    Signal
<int> ValueChanged;

};

int main()
{
    A
* pA = new A;
    B
* pB = new B;
    C
* pC = new C;

    Connect(pC, ValueChanged, pA, 
&A::FuncOfA);
    
//Connect(pC, ValueChanged, pB, &B::FuncOfB);

    
//pC->ValueChanged(10);
    pC->SetValue(10);
    
//pC->SetValue(5);
    
//pC->SetValue(5);

    delete pC;
    delete pB;
    delete pA;

    system(
"pause");
    
return 0;
}


杞嚜:http:
//www.cnitblog.com/luckydmz/archive/2010/11/15/71336.html

澶╀笅 2012-10-17 16:11 鍙戣〃璇勮
]]>
QT璧勬簮鏂囦歡http://www.shnenglu.com/aaxron/archive/2012/10/17/193405.html澶╀笅澶╀笅Wed, 17 Oct 2012 03:03:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/10/17/193405.htmlhttp://www.shnenglu.com/aaxron/comments/193405.htmlhttp://www.shnenglu.com/aaxron/archive/2012/10/17/193405.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/193405.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/193405.htmlQT璧勬簮鏂囦歡
 
Qt璧勬簮浣撶郴閲囩敤騫沖彴鐙珛鏈哄埗鏉ュ瓨鍌ㄥ簲鐢ㄧ▼搴忔墽琛屾椂鐨勪簩榪涘埗鏂囦歡銆傝繖縐嶆満鍒跺湪搴旂敤紼嬪簭闇瑕佷竴浜涚‘瀹氱殑鏂囦歡(鍥炬爣銆佺炕璇戞枃浠剁瓑絳?鑰屼笖鍙堜笉鎯沖啋涓㈠け鏂囦歡鐨勯闄╂椂鏄湁鐢ㄧ殑銆?br />
璧勬簮浣撶郴渚濊禆浜?nbsp;qmake, rcc (Qt
's resource compiler), 鍜?nbsp;QFile 鐨勭揣瀵嗗崗浣溿俀t 3 鐨?nbsp;qembed 宸ュ叿鍜?nbsp;image collection 鏈哄埗琚簾闄ゃ?/span>

Resource Collection Files (.qrc)
涓庡簲鐢ㄧ▼搴忓叧鑱旂殑搴旂敤紼嬪簭鐢?nbsp;.qrc 鏂囦歡鏉ユ寚瀹氾紝瀹冪敤XML璁板綍紜洏涓婄殑鏂囦歡鍜屽搴旂殑闅忔剰鎸囧畾鐨勮祫婧愬悕縐幫紝搴旂敤紼嬪簭閫氳繃璧勬簮鍚嶇О鏉ヨ闂祫婧愩?br />
涓涓?qrc 鏂囦歡鐨勪緥瀛愶細

<!DOCTYPE RCC>
<RCC version="1.0">
    
<qresource>
    
<file>images/copy.png</file>
    
<file>images/cut.png</file>
    
<file>images/paste.png</file>
    
<file>images/save.png</file>
    
</qresource>
</RCC>
.qrc 鏂囦歡涓垪鍑虹殑璧勬簮鏂囦歡鏄▼搴忕殑婧愮爜鏍戠殑涓閮ㄥ垎銆傛寚瀹氱殑璺緞鏄?nbsp;.qrc 鏂囦歡鎵鍦ㄧ洰褰曠殑鐩稿璺緞銆傛敞鎰忥紝鍒楀嚭鐨勮祫婧愭枃浠跺繀欏諱綅浜?nbsp;.qrc 鏂囦歡鎵鍦ㄧ洰褰曟垨鑰呭叾瀛愮洰褰曚笅銆?br />
璧勬簮鏁版嵁涔熻兘琚紪璇戣繘浜岃繘鍒舵枃浠朵腑錛屽洜姝ゅ簲鐢ㄧ▼搴忎唬鐮佸彲浠ョ珛鍗寵闂紱涔熷彲浠ュ垱寤轟竴涓簩榪涘埗璧勬簮錛岀◢鍚庡湪紼嬪簭涓櫥璁頒簡璧勬簮浣撶郴鐨勪唬鐮佷腑鎸囧畾銆?br />
緙虹渷鏃訛紝紼嬪簭鍙互鐢ㄨ祫婧愬湪婧愮爜鏍戜腑鐨勫悕縐板姞涓涓?nbsp;:
/ 鍓嶇紑鏉ヨ闂畠銆備緥濡傦紝鍦ㄧ▼搴忕殑婧愮爜鏍戜腑鏄?nbsp;images/cut.png 鐨勬枃浠跺彲浠ラ氳繃 :/images/cut.png 鏉ヨ闂備絾涔熷彲浠ョ敤 file 鏍囩涓殑 alias 灞炴ф潵鎸囧畾錛?br />
<file alias="cut-img.png">images/cut.png</file>
榪欐椂璇ユ枃浠跺彲浠ラ氳繃 :
/cut-img.png 鏉ヨ闂備篃鍙互鍦?nbsp;.qrc 鏂囦歡涓敤 qresource 鏍囩鐨?nbsp;prefix 灞炴э細瀹冨彲浠ヤ負 .qrc 鏂囦歡涓墍鏈夋枃浠舵寚瀹氫竴涓墠緙錛?br />
<qresource prefix="/myresources">
    
<file alias="cut-img.png">images/cut.png</file>
</qresource>
榪欐椂璇ユ枃浠跺彲浠ョ敤 :
/myresources/cut-img.png 璁塊棶銆?br />
鏈変簺璧勬簮錛屽儚緲昏瘧鏂囦歡鍜屽浘鏍囷紝闇瑕侀殢鐫鐢ㄦ埛鐨勬湰鍦伴厤緗屽彉鍖栥傝繖鍙互鍦?nbsp;qresource 鏍囩鐨?nbsp;lang 灞炴т腑鎸囧畾涓涓悎閫傜殑鏈湴鍖栧瓧涓叉潵瀹炵幇銆備緥濡傦細

<qresource>
    
<file>cut.jpg</file>
</qresource>

<qresource lang="fr">
    
<file alias="cut.jpg">cut_fr.jpg</file>
</qresource>
濡傛灉鐢ㄦ埛鐨勬湰鍦板寲璁劇疆鏄?nbsp;French (涔熷氨鏄錛孮Locale::system().name() returns 
"fr_FR")錛?/cut.jpg 灝變細寮曠敤 cut_fr.jpg 鍥懼儚銆傚浜庡叾浠栨湰鍦板寲璁劇疆錛屼粛鐒剁敤 cut.jpg 銆?br />
鏈湴鍖栧瓧涓茬殑浣跨敤鏍煎紡鍙傝 QLocale 鏂囨。銆?br />
浣跨敤澶栭儴浜岃繘鍒惰祫婧?br />涓哄垱寤轟竴涓閮ㄤ簩榪涘埗璧勬簮錛岄渶瑕侀氳繃鍚?nbsp;rcc 浼犻?nbsp;
-binary 寮鍏蟲潵鐢熸垚璧勬簮鏁版嵁(涓鑸槸.rcc鎵╁睍鍚?銆傜劧鍚庡彲浠ョ敤 QResource API 鏉ユ敞鍐岃祫婧愩?br />渚嬪錛屼竴涓?nbsp;.qrc 鏂囦歡鎸囧畾鐨勮祫婧愭暟鎹泦鍙互鐢ㄤ笅闈㈡柟娉曠紪璇戯細
rcc 
-binary myresource.qrc -o myresource.rcc
搴旂敤紼嬪簭涓紝鐢ㄤ笅闈㈢殑浠g爜娉ㄥ唽璧勬簮錛?nbsp;QResource::registerResource(
"/path/to/myresource.rcc");

Compiled
-In Resources
蹇呴』鍦ㄥ簲鐢ㄧ▼搴忕殑 .pro 鏂囦歡涓寚瀹?qrc 鏂囦歡錛?nbsp;qmake 鎵嶈兘鐭ラ亾騫跺皢璧勬簮緙栬瘧榪涗簩榪涘埗鏂囦歡銆備緥濡傦細

RESOURCES  
+  = application.qrc
qmake 灝嗕駭鐢焟ake瑙勫垯鏉ョ敓鎴愪竴涓彨鍋?nbsp;qrc_application.cpp 鐨勬枃浠跺茍鎶婂畠閾炬帴鍒板簲鐢ㄧ▼搴忎腑銆傝鏂囦歡涓紝鍥懼儚鍜屽叾浠栬祫婧愮殑鎵鏈夋暟鎹浠ュ帇緙╀簩榪涘埗鏁版嵁瀛樿繘闈欐丆
++鏁扮粍涓?nbsp;.qrc 鏂囦歡琚敼鍙樻垨鑰呭畠寮曠敤鐨勬枃浠朵腑鐨勬煇涓涓鏀瑰彉鏃訛紝 qrc_application.cpp 鑷姩閲嶆柊鐢熸垚銆傝嫢浣犳病鏈変嬌鐢?nbsp;.pro 鏂囦歡錛屼綘涔熷彲浠ユ墜鍔ㄨ皟鐢?nbsp;rcc 鎴栬呭湪浣犵殑緙栬瘧緋葷粺涓坊鍔犲垱寤鴻鍒欍?br />
閫氬父錛孮t鐩存帴灝嗘暟鎹瓨鍌ㄥ湪鍙墽琛屾枃浠朵腑錛岀敋鑷沖湪Windows鍜孧ac OS X榪欎簺鎻愪緵璧勬簮鏈湴鏀寔鐨勬搷浣滅郴緇熶腑涔熸槸榪欐牱銆傝繖鍙兘浼氬湪鏈潵鐨凲t鐗堟湰涓敼鍙樸?br />
Using Resources 
in the Application

搴旂敤紼嬪簭涓紝緇濆ぇ澶氭暟鍦版柟閮藉彲浠ョ敤璧勬簮璺緞浠f浛鍘熷鏂囦歡緋葷粺璺緞銆傚挨鍏舵槸鍦?nbsp;QIcon, QImage, or QPixmap 鏋勯犲櫒涓彲浠ヤ紶閫掕祫婧愯礬寰勬潵浠f浛鏂囦歡鍚嶇О錛?br />
cutAct 
= new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this);

鍦ㄥ唴瀛樹腑錛岃祫婧愯鐢ㄨ祫婧愬璞℃爲鏉ユ弿榪般傝鏍戝湪鍚姩鏃惰嚜鍔ㄦ瀯寤哄茍鐢≦File鏉ヨВ鏋愯祫婧愯礬寰勩傚彲浠ョ敤
":/" 鍒濆鍖栫殑 QDir 鏉ヤ粠璧勬簮鏍戠殑鏍歸儴寮濮嬫祻瑙堛?br />
Qt璧勬簮鏀寔鎼滅儲璺緞鍒楄〃姒傚康銆傝嫢鐢?nbsp;
":"浠f浛":/"鍋氬墠緙鏉ュ紩鐢ㄤ竴涓祫婧愶紝璧勬簮灝嗚鐢ㄦ悳绱㈣礬寰勫垪琛ㄦ煡璇€傚惎鍔ㄦ椂鎼滅儲璺緞鍒楄〃鏄┖鐨勶紝璋冪敤 QDir::addResourceSearchPath() 鍙互娣誨姞璺緞銆?br />
If you have resources 
in a static library錛屽繀欏葷敤.qrc 鏂囦歡鐨刡ase name浣滃弬鏁拌皟鐢?nbsp;Q_INIT_RESOURCE() 鏉ュ己鍒跺垵濮嬪寲璧勬簮銆備緥濡傦細

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Q_INIT_RESOURCE(graphlib);
    
//
    return app.exec();
}
鍚屾牱鍦幫紝鑻ヤ綘闇瑕佹樉寮忓嵏杞戒竴涓祫婧愰泦(鍥犳彃浠惰鍗歌澆鎴栬祫婧愬け鏁?錛岄渶瑕佺敤涓庡墠闈㈢浉鍚岀殑base name涓哄弬鏁拌皟鐢≦_CLEANUP_RESOURCE() 鏉ュ己鍒剁Щ闄よ祫婧?/span>

澶╀笅 2012-10-17 11:03 鍙戣〃璇勮
]]>
QT瀛︿範絎旇錛?錛夛細鍫嗘爤紿楀彛http://www.shnenglu.com/aaxron/archive/2012/10/17/193403.html澶╀笅澶╀笅Wed, 17 Oct 2012 02:21:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/10/17/193403.htmlhttp://www.shnenglu.com/aaxron/comments/193403.htmlhttp://www.shnenglu.com/aaxron/archive/2012/10/17/193403.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/193403.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/193403.html//StackDlg.h
#pragma once
#include 
<QtGui>
class StackDlg : public QDialog
{
    Q_OBJECT
public:
    StackDlg(QWidget 
*parent = 0, Qt::WindowFlags f1 = 0);

    QLabel 
*label1;
    QLabel 
*label2;
    QLabel 
*label3;
    QListWidget 
*listwidget;
    QStackedWidget 
*stackwidget;
};


//StackDlg.cpp
#include "stack.h"

StackDlg::StackDlg(QWidget 
*parent, Qt::WindowFlags f1) : QDialog(parent,f1)
{
    setWindowTitle(tr(
"Stacked Widgets"));
    
    listwidget 
= new QListWidget(this);
    listwidget
->insertItem(0,tr("Window 1"));
    listwidget
->insertItem(1,tr("Window 2"));
    listwidget
->insertItem(2,tr("Window 3"));
     
    label1 
= new QLabel(tr("This is Window 1 !"));
    label2 
= new QLabel(tr("This is Window 2 !"));
    label3 
= new QLabel(tr("This is Window 3 !"));
       
    stackwidget 
= new QStackedWidget(this);
    stackwidget
->addWidget(label1);
    stackwidget
->addWidget(label2);
    stackwidget
->addWidget(label3);
     
    QHBoxLayout 
*mainLayout = new QHBoxLayout(this);
    mainLayout
->setMargin(0);
    mainLayout
->setSpacing(0);

    mainLayout
->addWidget(listwidget,1);    //寤朵幾鍥犲瓙涓?

    mainLayout
->addWidget(stackwidget,3,Qt::AlignLeft); //寤朵幾鍥犲瓙涓?

    
//mainLayout->setStretchFactor(list,1);    //璁劇疆寤朵幾鍥犲瓙涓?
    
//mainLayout->setStretchFactor(stackwidget,4); //璁劇疆寤朵幾鍥犲瓙涓?
    connect(listwidget,SIGNAL(currentRowChanged(int)),stackwidget,SLOT(setCurrentIndex(int)));
}


//main.cpp
#include <QApplication>
#include 
"StackDlg.h"

int main( int argc, char * argv[] )
{
    QApplication a( argc, argv );
    
    StackDlg stack;
    stack.show();
    
return a.exec();
}


澶╀笅 2012-10-17 10:21 鍙戣〃璇勮
]]>
QT瀛︿範絎旇錛?錛夛細鍙仠闈犵殑紿楀彛 http://www.shnenglu.com/aaxron/archive/2012/10/17/193399.html澶╀笅澶╀笅Wed, 17 Oct 2012 01:36:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/10/17/193399.htmlhttp://www.shnenglu.com/aaxron/comments/193399.htmlhttp://www.shnenglu.com/aaxron/archive/2012/10/17/193399.html#Feedback1http://www.shnenglu.com/aaxron/comments/commentRss/193399.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/193399.html//dockwindows.h
#pragma once
#include 
<QtGui>

class DockWindows : public QMainWindow
{
    Q_OBJECT
public:
    DockWindows();
    
~DockWindows();
};

//dockwindows.cpp
#include "dockwindows.h"

DockWindows::DockWindows(): QMainWindow()
    
{
    setWindowTitle( tr( 
"DockWindows" ) );
    
    QTextEdit 
*te = new QTextEdit( this );
    te
->setText(tr("Main Window"));   
    te
->setAlignment(Qt::AlignCenter);
    
//te->setMinimumWidth(640);
    
//this->resize(800,600);
    setCentralWidget( te ); 

    
//  鍋滈潬紿楀彛 1
    QDockWidget *dock = new QDockWidget(tr("DockWindow 1"), this );

    dock
->setFeatures(QDockWidget::DockWidgetFeature::AllDockWidgetFeatures);
    
//same as dock->setFeatures(QDockWidget::AllDockWidgetFeatures);

    dock
->setAllowedAreas(Qt::DockWidgetArea::AllDockWidgetAreas);
    
//same as dock->setAllowedAreas(Qt::AllDockWidgetAreas);
    QTextEdit *te1 = new QTextEdit();
    te1
->setText(tr("Window 1"));   
    dock
->setWidget( te1 );
    
    addDockWidget( Qt::RightDockWidgetArea, dock );
    
    
//  鍋滈潬紿楀彛 2
    dock = new QDockWidget( tr("DockWindow 2"), this );
    
//dock->setFeatures( QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetClosable);
    QTextEdit *te2 = new QTextEdit();
    te2
->setText(tr("Window 2"));   
    dock
->setWidget( te2 );   
    addDockWidget( Qt::RightDockWidgetArea, dock);   

    
//  鍋滈潬紿楀彛 3
    dock = new QDockWidget( tr("DockWindow 3"),this );
    dock
->setFeatures( QDockWidget::AllDockWidgetFeatures );
    QTextEdit 
*te3 = new QTextEdit();
    te3
->setText(tr("Window 3"));   
    dock
->setWidget( te3 );     
    addDockWidget( Qt::BottomDockWidgetArea, dock); 
}

DockWindows::
~DockWindows()
{
}

//main.cpp
#include "dockwindows.h"
#include 
<QApplication>


int main( int argc, char **argv )
{
        
    QApplication a( argc, argv );
    QTranslator translator(
0);
    translator.load(
"dockwindows_zh",".");
    a.installTranslator(
&translator);  

    DockWindows 
*dockwindows = new DockWindows();
    dockwindows
->show();
    
return a.exec();
}


澶╀笅 2012-10-17 09:36 鍙戣〃璇勮
]]>
QCheckBoxExhttp://www.shnenglu.com/aaxron/archive/2012/10/09/193058.html澶╀笅澶╀笅Tue, 09 Oct 2012 05:56:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/10/09/193058.htmlhttp://www.shnenglu.com/aaxron/comments/193058.htmlhttp://www.shnenglu.com/aaxron/archive/2012/10/09/193058.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/193058.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/193058.html//QCheckBoxEx.h
#include <QtGui/QtGui>
class QCheckBoxEx : public QAbstractButton 

public
    QCheckBoxEx(QWidget
* parent);
    
bool init(QString yes,QString no);
private:
    QPixmap m_pixmap[
2];
protected
    
void paintEvent(QPaintEvent *event); 
};


//QCheckBoxEx.cpp
#include "QCheckBoxEx.h"
QCheckBoxEx::QCheckBoxEx(QWidget
* parent) 

    setParent(parent);
    setCheckable(
true);
}

bool QCheckBoxEx::init(QString yes,QString no)
{
    m_pixmap[
0].load(no);
    m_pixmap[
1].load(yes);

    
int w = m_pixmap[0].width();
    
int h = m_pixmap[0].height();

    
if (w && h && w== m_pixmap[1].width() && h==m_pixmap[1].height())
    {
        resize(w,h);
        
return true;
    }
    
return false;
}
void QCheckBoxEx::paintEvent(QPaintEvent *event

    QPainter p(
this);
    
if (isChecked())
    {
        p.drawPixmap(
0,0,m_pixmap[1]);
    }
    
else{
        p.drawPixmap(
0,0,m_pixmap[0]);
    }
}

//浣跨敤
    m_check = new QCheckBoxEx(this);
    m_check
->init("d:\\1.jpg","d:\\0.jpg");
    
//m_check->setChecked(true);

澶╀笅 2012-10-09 13:56 鍙戣〃璇勮
]]>
QT瀛︿範絎旇錛?錛夛細綰跨▼http://www.shnenglu.com/aaxron/archive/2012/08/31/188903.html澶╀笅澶╀笅Fri, 31 Aug 2012 07:29:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/31/188903.htmlhttp://www.shnenglu.com/aaxron/comments/188903.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/31/188903.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188903.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188903.html//QT綰跨▼
#include <QtGui/QtGui>

QMutex mutex;
int count = 0;
class MyThread : public QThread 
{  
public:    
        
virtual void run();  
};   
void MyThread::run()
{    
    
int i=10000;
    
while(i--
    {
        mutex.
lock(); 
        count
++;
        qDebug( 
"at %p count:%d",this,count ); 
        
//msleep(100);
        mutex.unlock();
    }  
}   

int main()
{    
    MyThread a;    
    MyThread b;    
    a.start();
    b.start();    
    a.wait();    
    b.wait();  

    
//濡傛灉涓嶅姞閿?寰楀埌鐨刢ount鍙兘涓嶆紜?
    qDebug( "count:%d",count ); 
    
return 0;


澶╀笅 2012-08-31 15:29 鍙戣〃璇勮
]]>
Qt鐨勫唴瀛樼鐞?http://www.shnenglu.com/aaxron/archive/2012/08/31/188902.html澶╀笅澶╀笅Fri, 31 Aug 2012 07:28:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/31/188902.htmlhttp://www.shnenglu.com/aaxron/comments/188902.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/31/188902.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188902.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188902.htmlQt鐨勫唴瀛樼鐞?

鍒氬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

 



澶╀笅 2012-08-31 15:28 鍙戣〃璇勮
]]>
QFileSystemModel+QTableViewhttp://www.shnenglu.com/aaxron/archive/2012/08/30/188719.html澶╀笅澶╀笅Thu, 30 Aug 2012 03:13:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/30/188719.htmlhttp://www.shnenglu.com/aaxron/comments/188719.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/30/188719.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188719.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188719.html//main.cpp
#include <QtGui/QtGui>
#include 
<QtGui/QDirModel>
#include 
<QtGui/QListView>
#include 
<QtGui/QTableView>
#include 
<QtGui/QTreeView>


int main(int argc, char *argv[])
{
    QApplication app(argc,argv);

    QFileSystemModel model; 
//濡傛灉鐢≦DirModel model; 灞曞紑鏍戞椂,澶參
    
    
//QListView list;
    QTreeView tree;
    QTableView table;
    QSplitter
* spliter = new QSplitter;

    
//model.setRootPath("");
    model.setRootPath("");
    
//model.setRootIndex();
    tree.setModel(&model);
    
//list.setModel(&model);
    table.setModel(&model);

    
//tree.setSelectionMode(QAbstractItemView::MultiSelection);
    tree.setSelectionMode(QAbstractItemView::SingleSelection);  
    
//list.setSelectionMode(tree.selectionMode());  
    table.setSelectionMode(tree.selectionMode());  


    
//QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&list,  
    
//    SLOT(setRootIndex(QModelIndex)));  
    QObject::connect(&tree,SIGNAL(clicked(QModelIndex)),&table,  
        SLOT(setRootIndex(QModelIndex)));  

    spliter
->addWidget(&tree);
    
//spliter->addWidget(&list);
    spliter->addWidget(&table);
    spliter
->show();

    
return app.exec();
}


澶╀笅 2012-08-30 11:13 鍙戣〃璇勮
]]>
QT瀛︿範絎旇錛?錛夛細QUiLoader浣跨敤http://www.shnenglu.com/aaxron/archive/2012/08/28/188491.html澶╀笅澶╀笅Tue, 28 Aug 2012 01:46:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/28/188491.htmlhttp://www.shnenglu.com/aaxron/comments/188491.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/28/188491.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188491.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188491.html//QUiLoader浣跨敤
//main.cpp
#include <QtGui/Qtgui>
#include 
<QtGui/QLabel>
#include 
<QtUiTools/QUiLoader>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );
    QUiLoader uiLoader;
    QFile file(
"MyDialog.ui");

    QWidget
* pWidget = uiLoader.load(&file);

    
if (pWidget==NULL)
    {
        QMessageBox::warning(NULL,
"error","load MyDialog.ui error",QMessageBox::Ok);
        
return 0;
    }
    
//void QWidget::showNormal () [slot]
    QPushButton* pBtnOk = pWidget->findChild<QPushButton*>("okButton"); 
    
if (pBtnOk!=NULL)
    {
        QMessageBox::information(NULL,
"Hint","Find okButton Success",QMessageBox::Ok);
    }    
    pWidget
->showNormal();

    
//pWidget->show();
    return a.exec();
}



澶╀笅 2012-08-28 09:46 鍙戣〃璇勮
]]>
QT瀛︿範絎旇錛?錛夛細QTableview浣跨敤http://www.shnenglu.com/aaxron/archive/2012/08/27/188393.html澶╀笅澶╀笅Mon, 27 Aug 2012 02:57:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/27/188393.htmlhttp://www.shnenglu.com/aaxron/comments/188393.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/27/188393.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188393.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188393.html
//QTableview浣跨敤絎旇
//main.cpp
#include <QtGui/QApplication>
#include 
<QtGui/QLabel>
#include 
<QtGui/QMainWindow>
#include 
<QtGui/QVBoxLayout>
#include 
<QtGui/QPushButton>
#include 
<QProgressDialog>
#include 
<QDebug>
#include 
<QStringListModel>
#include 
<QtGui/QListView>
#include 
<QtGui/QListWidget>
#include 
<QtGui/QLabel>
#include 
<QStandardItem>
#include 
<QTableView>
#include 
<QStandardItemModel>
#include 
<QHeaderView>

//#include "MyDialog.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QStandardItemModel 
*model = new QStandardItemModel;

    QTableView
* pTableView = new QTableView;
    model
->setColumnCount(2);    // 璁劇疆鍒楁暟

    
//璁劇疆鍒楁爣棰?/span>
    model->setHeaderData(0,Qt::Horizontal,"ID");
    model
->setHeaderData(1,Qt::Horizontal,"NAME");
    
//for (int i = 0; i < 2; i++)
    
//{
    
//    model->setItem(i,0,new QStandardItem(QString("%1").arg(i+1)) );
    
//    model->setItem(i,1,new QStandardItem(QString("Aaron%1").arg(i)));
    
//}

    
    
/*
    //鐩稿悓鏁堟灉
    QStandardItem *item;
    QList<QStandardItem *> items;
    for (int i = 0; i < 2; i++)
    {
        items.clear();
        item = new QStandardItem("Aaron");
        //item->setCheckable(true);
        items.push_back(item);
        item = new QStandardItem("12.21");
        items.push_back(item);
        model->appendRow(items);
    }
    
*/

    pTableView
->setModel(model); 

    
//闅愯棌宸﹁竟閭e垪
    pTableView->verticalHeader()->hide();

    
//璁劇疆鏌愬垪闅愯棌
    
//pTableView->setColumnHidden(0,true);


    
//鍒楀
    pTableView->setColumnWidth(0,60);

    
//鏁磋閫夋嫨
    pTableView->setSelectionBehavior(QAbstractItemView::SelectRows);

    pTableView
->show();
    
    
return app.exec();

}


澶╀笅 2012-08-27 10:57 鍙戣〃璇勮
]]>
QT瀛︿範絎旇錛?錛夛細Qt Designer璁捐ui鍙婂璇濇浣跨敤http://www.shnenglu.com/aaxron/archive/2012/08/26/188308.html澶╀笅澶╀笅Sun, 26 Aug 2012 02:11:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/26/188308.htmlhttp://www.shnenglu.com/aaxron/comments/188308.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/26/188308.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188308.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188308.html1錛?鍦╭t宸ョ▼涓殑Form Files錛屾坊鍔燤yDialog.ui錛屽璇濇鐨勫璞″悕涓篗yDialog銆?/span>
2錛夋坊鍔?涓猵ushButton錛屽湪Qt Designer娣誨姞淇″彿clicked()鍙婃Ыslot1()
榪欐椂錛屾垜浠彲浠ョ湅鍒癚t Designer浼氬府鎴戜滑鐢熸垚 ui_MyDialog.h 
  //鍦╱i_MyDialog.h鏂囦歡涓紝娉ㄦ剰榪欓噷錛岃繖鏄疩t Designer鐢熸垚鐨勪唬鐮?/span>
   QObject::connect(pushButton, SIGNAL(clicked()), MyDialog, SLOT(slot1()));

3.娣誨姞瀵瑰簲鐨勭被錛屽茍瀹炵幇妲絪lot1()
璇﹁闄勪歡錛?/span>
/Files/aaxron/qt_deom05.rar



涔熷彲浠ヨ繖鏍?
浣跨敤Qt璁捐甯堝埄鐢ㄥ竷灞鏉ヨ緗ソ鐣岄潰錛岀敓鎴?ui鏂囦歡錛岀劧鍚庝嬌鐢╱ic 
-o XXX.h XXX.ui  鏉ョ敓鎴?h 鏂囦歡錛岀劧鍚庡寘鍚繖涓?h 鏂囦歡錛岃嚜瀹氫箟涓涓被錛岀戶鎵胯繖涓?h涓殑綾伙紝騫朵笖緇ф壙QObject 鐨勫瓙綾伙紝鍏叡緇ф壙鍙互浣跨敤ui涓殑鎵鏈夌殑鐣岄潰鍏冪礌

//鑷畾涔夌被鏂囦歡
#ifndef CellDialog_H_
#define CellDialog_H_

#include 
"ui_CellDialog.h"
#include 
<QtGui/QtGui>

class GoToCellDialog :public QDialog , Ui::GoToCellDialog
{
    Q_OBJECT
public:
    GoToCellDialog(QWidget 
*parent = 0);
private slots:
    
void on_lineEdit_textChanged();
};

#endif




澶╀笅 2012-08-26 10:11 鍙戣〃璇勮
]]>
QT瀛︿範絎旇錛?錛?鏍囧噯瀵硅瘽妗嗙殑浣跨敤http://www.shnenglu.com/aaxron/archive/2012/08/26/188307.html澶╀笅澶╀笅Sun, 26 Aug 2012 02:10:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/26/188307.htmlhttp://www.shnenglu.com/aaxron/comments/188307.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/26/188307.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188307.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188307.html/Files/aaxron/qtdemo02.zip

澶╀笅 2012-08-26 10:10 鍙戣〃璇勮
]]>
QT 鐨勪俊鍙蜂笌妲芥満鍒?3) http://www.shnenglu.com/aaxron/archive/2012/08/25/188225.html澶╀笅澶╀笅Sat, 25 Aug 2012 02:52:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/25/188225.htmlhttp://www.shnenglu.com/aaxron/comments/188225.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/25/188225.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188225.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188225.htmlQT 鐨勪俊鍙蜂笌妲芥満鍒?3
銆銆淇″彿鍜屾Ы鏄竴縐嶉珮綰ф帴鍙o紝搴旂敤浜庡璞′箣闂寸殑閫氫俊錛屽畠鏄?nbsp;QT 鐨勬牳蹇冪壒鎬с傝姝g‘鐨勫鐞嗕俊鍙峰拰妲斤紝蹇呴』鍊熷姪涓涓О涓?nbsp;moc錛圡eta Object Compiler錛夌殑 QT 宸ュ叿錛岃宸ュ叿鏄竴涓?nbsp;C
++ 棰勫鐞嗙▼搴忥紝瀹冧負楂樺眰嬈$殑浜嬩歡澶勭悊鑷姩鐢熸垚鎵闇瑕佺殑闄勫姞浠g爜銆?nbsp;淇″彿鍜屾Ы鑳芥惡甯︿換鎰忔暟閲忓拰浠繪剰綾誨瀷鐨勫弬鏁般傛垜浠彲浠ュ皢寰堝淇″彿涓庡崟涓殑妲借繘琛岃繛鎺ワ紝涔熷彲浠ュ皢鍗曚釜鐨勪俊鍙蜂笌寰堝鐨勬Ы榪涜榪炴帴錛岋紙褰撹繖涓俊鍙瘋鍙戝皠鏃訛紝榪欎簺妲藉皢浼氫竴涓帴涓涓湴 鎵ц錛屼絾鏄畠浠墽琛岀殑欏哄簭灝嗕細鏄殢鏈虹殑銆佷笉紜畾鐨勶紝鎴戜滑涓嶈兘浜轟負鍦版寚瀹氬摢涓厛鎵ц銆佸摢涓悗鎵ц銆傦級鐢氳嚦浜庡皢涓涓俊鍙蜂笌鍙﹀涓涓俊鍙風浉榪炴帴錛岃繖鏃舵棤璁虹涓涓俊鍙蜂粈涔堟椂鍊欏彂灝勭郴緇熼兘灝嗙珛鍒誨彂灝勭浜屼釜淇″彿銆傛諱箣錛屼俊鍙蜂笌妲芥瀯閫犱簡涓涓己澶х殑閮ㄤ歡緙栫▼鏈哄埗銆?br />
淇″彿錛坰ignals錛?br />
淇″彿鍙渶瑕佸湪澶存枃浠朵腑鍋氬0鏄庯紝涓嶉渶瑕佸湪cpp涓疄鐜般傛斁鍦≦T鑷畾涔夊叧閿瓧signals涓嬶紝鍦ㄦ涔嬪墠涓瀹氳鍔犱笂Q_OBJECT瀹忥紒

鍦ㄧ紪紼嬩腑錛屼竴鑸嬌鐢ㄧ殑鏄帶浠跺唴閮ㄥ畾涔夊ソ鐨勪俊鍙楓?br />濡傦細QTreeWidget綾諱笅鐨?nbsp;signals錛?br />
void    currentItemChanged ( QTreeWidgetItem * current, QTreeWidgetItem * previous ) 
void    itemActivated ( QTreeWidgetItem * item, int column ) 
void    itemChanged ( QTreeWidgetItem * item, int column ) 
void    itemClicked ( QTreeWidgetItem * item, int column ) 
void    itemCollapsed ( QTreeWidgetItem * item ) 
void    itemDoubleClicked ( QTreeWidgetItem * item, int column ) 
void    itemEntered ( QTreeWidgetItem * item, int column ) 
void    itemExpanded ( QTreeWidgetItem * item ) 
void    itemPressed ( QTreeWidgetItem * item, int column ) 
void    itemSelectionChanged () 


涔熷彲浠ヨ嚜瀹氫箟淇″彿錛屽茍閫氳繃emit鍦ㄤ唬鐮佷腑鍙戝皠淇″彿銆?br />
// ------------ sender.h ----------- 
class sender : public QObject 

    Q_OBJECT 

     
public
        
void doSend(); 
    signals: 
        
void send(int); 
}; 


// ------------ sender.cpp ----------- 
#include "sender.h" 
void sender :: doSend() 

    emit send(
40); 


妲斤紙slots錛?br />
銆銆妲藉拰鏅氱殑C
++鎴愬憳鍑芥暟鍑犱箮鏄竴鏍風殑錛堝彲浠ユ槸铏氬嚱鏁幫紝鍙互琚噸杞斤紝鍙互鏄痯ublic slots銆?/span>protected slots銆?/span>private slots錛屽彲浠ヨ鍏朵粬C++鎴愬憳鍑芥暟鐩存帴璋冪敤錛涘敮涓涓嶅悓鐨勬槸錛氭Ы榪樺彲浠ュ拰淇″彿榪炴帴鍦ㄤ竴璧鳳紝鍦ㄨ繖縐嶆儏鍐典笅錛屼俊鍙瘋鍙戝皠鏃訛紝浼氳嚜鍔ㄨ皟鐢ㄨ繖涓Ы銆傦級妲戒笉闇瑕佷俊鍙蜂紶榪囨潵鐨勫弬鏁版椂錛屽彲浠ヤ笉瑕佸弬鏁幫紱浣嗘Ы涓鏃﹁鍙傛暟錛屽叾鍙傛暟涓暟錛岀被鍨嬶紝欏哄簭蹇呴』瑕佸拰瀵瑰簲鐨勪俊鍙蜂繚鎸佷竴鑷淬傚彟澶栵紝妲界殑鍙傛暟涓嶈兘鏈夌己鐪佸箋?br />
// ------------ receiver.h ----------- 
class receiver : public QObject 

    Q_OBJECT 
  
    
public slots: 
        
void recv(int); 
};



// ------------ Receiver.cpp ----------- 
void receiver :: recv(int n) 

    qDebug()
<<"recv number: "<<n<<endl; 


鍏寵仈淇″彿鍜屾Ы錛坈onnect錛?br />鍙互浣跨敤QObject綾葷殑闈欐佹垚鍛樺嚱鏁癱onnect鏉ュ緩绔嬩俊鍙風殑妲界殑鍏寵仈

QObject::connect鏄潤鎬佸嚱鏁?榪斿洖鍊糱ool綾誨瀷.
static  bool QObject::connect ( const QObject * sender, const char * signal,const QObject * receiver, const char * member );  


鍏蜂綋鐨勮皟鐢ㄤ負錛歝onnect(sender, SIGNAL(signal), receiver, SLOT(slot));   鍏朵腑sender鍜宺eceiver涓篞Object綾誨璞$殑鎸囬拡錛?nbsp;SIGNAL瀹忓拰SLOT瀹忓皢淇″彿鐨勬Ы杞崲鎴愬瓧絎︿覆銆?br />

sender s; 
receiver r; 
QObject::connect(
&s, SIGNAL(send(int)), &r, SLOT(recv(int))); 

娉細鍦╟onnect鍑芥暟涓俊鍙峰嚱鏁板拰妲藉嚱鏁拌嫢鏈夊弬鏁幫紝鍙兘鍐欏嚭鍙傛暟綾誨瀷錛岃屼笉鑳戒篃灝嗗彉閲忓悕鍐欏嚭錛涘惁鍒欙紝榪炴帴浼氬け璐ワ紒

鏂紑淇″彿鍜屾Ы錛坉isconnect錛?br />
褰撲俊鍙峰拰妲芥病鏈夊繀瑕佺戶緇繚鎸佽繛鎺ユ椂錛屽彲浠ラ氳繃璋冪敤disconnect鏉ユ柇寮瀹冧滑銆?br />
static bool QObject::disconnect (const QObject * sender, const char * signal,  const Object * receiver, const char * slot)


鏈変笁縐嶆儏鍐靛繀欏諱嬌鐢?nbsp;disconnect() 鍑芥暟錛?br />錛?/span>1錛夋柇寮涓庢煇涓璞$浉鍏寵仈鐨勪換浣曞璞°?br />    disconnect(sender, 000) ; 
    
//鎴栬?nbsp;
    sender->disconnect(); 


錛?/span>2錛夋柇寮涓庢煇涓壒瀹氫俊鍙風殑浠諱綍鍏寵仈銆?br />    disconnect(sender, SIGNAL(signal()), 00); 
    
//鎴栬?nbsp;
    sender->disconnect(SIGNAL(signal())); 


錛?/span>3錛夋柇寮涓や釜瀵硅薄涔嬮棿鐨勫叧鑱斻?br />    disconnect(sender, 0, receiver, 0); 
    
//鎴栬?nbsp;
    sender->disconnect(receiver); 

杞嚜:

澶╀笅 2012-08-25 10:52 鍙戣〃璇勮
]]>
QT 鐨勪俊鍙蜂笌妲芥満鍒?2) http://www.shnenglu.com/aaxron/archive/2012/08/25/188224.html澶╀笅澶╀笅Sat, 25 Aug 2012 02:41:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/25/188224.htmlhttp://www.shnenglu.com/aaxron/comments/188224.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/25/188224.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188224.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188224.html杞嚜:http://www.shnenglu.com/lovecpp666/articles/169108.html

Signals and Slots in Depth


(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>

 1 class Employee : public QObject
 2 {
 3     Q_OBJECT
 4 public:
 5     Employee() { mySalary = 0; }
 6     int salary() const { return mySalary; }
 7 public slots:
 8     void setSalary(int newSalary);
 9 signals:
10     void salaryChanged(int newSalary);
11 private:
12     int mySalary;
13 };
14 void Employee::setSalary(int newSalary)
15 {
16     if (newSalary != mySalary) {
17         mySalary = newSalary;
18         emit salaryChanged(mySalary);
19     }
20 }
21 

娉ㄦ剰錛屽彧鏈塶ewSalary != mySalary鏃舵墠鍙戝嚭salary-Changed()淇″彿錛岃繖鏍烽伩鍏嶄簡姝誨驚鐜殑鍑虹幇銆?/span>



澶╀笅 2012-08-25 10:41 鍙戣〃璇勮
]]>
QT瀛︿範絎旇錛?錛夛細榪涘害鏉″璇濇http://www.shnenglu.com/aaxron/archive/2012/08/24/188151.html澶╀笅澶╀笅Fri, 24 Aug 2012 08:31:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/24/188151.htmlhttp://www.shnenglu.com/aaxron/comments/188151.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/24/188151.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188151.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188151.html//MyWidget.h
#pragma once
#include 
<QWidget>
#include 
<QPushButton>

class MyWidget:public QWidget
{
    Q_OBJECT
public:
    MyWidget();
public:
    QPushButton m_btnQuit;
    QPushButton m_btnTest;

public slots:
    
void runTestDialog();
}
;

 

//MyDialog.cpp
#include "MyDialog.h"


MyDialog::MyDialog(QWidget
* parent,Qt::WindowFlags f)
    :QDialog(parent,f)
{
    m_pLayout    
= new QGridLayout(this);
    
this->setWindowTitle(tr("run Test Dialog"));
    
//this->setFixedHeight(200);
    this->setFixedWidth(640);

    m_pbtnQuit 
= new QPushButton("Quit");
    m_pbtnTestQFileDialog 
= new QPushButton("Test QFileDialog");
    m_pbtnTestQFileDialog
->setFixedWidth(150);

    m_pbtnTestQColorDialog 
= new QPushButton("Test QColorDialog");
    m_pbtnTestQFontDialog 
= new QPushButton("Test QFontDialog");

    m_pFrameColor 
= new QFrame;
    m_pFrameColor
->setFrameShape(QFrame::Box);
    m_pFrameColor
->setAutoFillBackground(true);

    m_pEditFile 
= new QLineEdit;
    
//m_pEditFile->resize(200,20);
    

    m_pEditFont 
= new QLineEdit;
    m_pEditFont
->setText( trUtf8("\xE5\xAD\x97\xE4\xBD\x93\xE6\xB5\x8B\xE8\xAF\x95 Font Test"));
    
//m_pEditFont->setMinimumHeight(40);
    
    m_pLayout
->addWidget(m_pbtnTestQFileDialog,0,0);
    m_pLayout
->addWidget(m_pEditFile,0,1);

    m_pLayout
->addWidget(m_pbtnTestQColorDialog,1,0);
    m_pLayout
->addWidget(m_pFrameColor,1,1);

    m_pLayout
->addWidget(m_pbtnTestQFontDialog,2,0);
    m_pLayout
->addWidget(m_pEditFont,2,1);
    m_pLayout
->addWidget(m_pbtnQuit,5,0);

    m_pLayout
->setMargin(15);
    m_pLayout
->setSpacing(10);


    connect(m_pbtnQuit,SIGNAL(clicked()),qApp,SLOT(quit()) );

    connect(m_pbtnTestQFileDialog,SIGNAL(clicked()),SLOT(TestQFileDialog()) );
    connect(m_pbtnTestQColorDialog,SIGNAL(clicked()),SLOT(TestQColorDialog()) );
    connect(m_pbtnTestQFontDialog,SIGNAL(clicked()),SLOT(TestQFontDialog()) );

}

void MyDialog::TestQFileDialog()
{
    QProgressDialog
*  pDlg = new QProgressDialog(this);
    
int nMax = 100001;
    pDlg
->setLabelText("Test QProgressDialog");
    pDlg
->setRange(0,nMax-1);
    
//pDlg->setModal(false);
    pDlg->setAutoClose(true);
    pDlg
->show();
    
//pDlg->exec();
    
    
for (int i=0;i<nMax;i++)
    {
        
if (pDlg->wasCanceled())
        {
            qDebug() 
<< pDlg->wasCanceled();
            
break;
        }
        pDlg
->setValue(i);
        qApp
->processEvents();
        
//if (i==50000)
        
//{
        
//    pDlg->close();
        
//    break;
        
//}
    }
    delete pDlg;
    
//QString hello = tr("Hello");
    
//QString world = tr("World");

    
//QMessageBox::information(this,hello,world);

    
//QString filename = QFileDialog::getOpenFileName(this,"Test QFileDialog","/","C++ files(*.cpp)");
    
//m_pEditFile->setText(filename);
}

void MyDialog::TestQColorDialog()
{
    QColor color  
= QColorDialog::getColor();
    
if (color.isValid())
    {
        m_pFrameColor
->setPalette(color);
    }
}
void MyDialog::TestQFontDialog()
{
    
bool ok;
    QFont font 
= QFontDialog::getFont(&ok);
    
if (ok)
    {
        
//font.setPointSize(24);
        m_pEditFont->setFont(font);
    }
}


 



澶╀笅 2012-08-24 16:31 鍙戣〃璇勮
]]>
QT 鐨勪俊鍙蜂笌妲芥満鍒?1)http://www.shnenglu.com/aaxron/archive/2012/08/24/188144.html澶╀笅澶╀笅Fri, 24 Aug 2012 07:41:00 GMThttp://www.shnenglu.com/aaxron/archive/2012/08/24/188144.htmlhttp://www.shnenglu.com/aaxron/comments/188144.htmlhttp://www.shnenglu.com/aaxron/archive/2012/08/24/188144.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/188144.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/188144.html 

QT 鐨勪俊鍙蜂笌妲芥満鍒?1)
淇″彿
褰撴煇涓俊鍙峰鍏跺鎴鋒垨鎵鏈夎呭彂鐢熺殑鍐呴儴鐘舵佸彂鐢熸敼鍙橈紝淇″彿琚竴涓璞″彂灝勩傚彧鏈?nbsp;瀹氫箟榪囪繖涓俊鍙風殑綾誨強鍏舵淳鐢熺被鑳藉鍙戝皠榪欎釜淇″彿銆傚綋涓涓俊鍙瘋鍙戝皠鏃訛紝涓庡叾鐩稿叧鑱旂殑妲藉皢琚珛鍒繪墽琛岋紝灝辮薄涓涓甯哥殑鍑芥暟璋冪敤涓鏍楓備俊鍙?nbsp;
- 妲芥満鍒跺畬鍏ㄧ嫭绔嬩簬浠諱綍 GUI 浜嬩歡寰幆銆傚彧鏈夊綋鎵鏈夌殑妲借繑鍥炰互鍚庡彂灝勫嚱鏁幫紙emit錛夋墠榪斿洖銆?nbsp;濡傛灉瀛樺湪澶氫釜妲戒笌鏌愪釜淇″彿鐩稿叧鑱旓紝閭d箞錛屽綋榪欎釜淇″彿琚彂灝勬椂錛岃繖浜涙Ы灝嗕細涓涓帴涓涓湴 鎵ц錛屼絾鏄畠浠墽琛岀殑欏哄簭灝嗕細鏄殢鏈虹殑銆佷笉紜畾鐨勶紝鎴戜滑涓嶈兘浜轟負鍦版寚瀹氬摢涓厛鎵ц銆佸摢 涓悗鎵ц銆?br />淇″彿鐨勫0鏄庢槸鍦ㄥご鏂囦歡涓繘琛岀殑錛孮T 鐨?nbsp;signals 鍏抽敭瀛楁寚鍑鴻繘鍏ヤ簡淇″彿澹版槑鍖猴紝闅忓悗鍗沖彲 澹版槑鑷繁鐨勪俊鍙楓備緥濡傦紝涓嬮潰瀹氫箟浜嗕笁涓俊鍙鳳細
signals: 
void mySignal(); 
void mySignal(int x); 
void mySignalParam(int x,int y);


鍦ㄤ笂闈㈢殑瀹氫箟涓紝signals 鏄?QT 鐨勫叧閿瓧錛岃岄潪 C/C++ 鐨勩?br />鎺ヤ笅鏉ョ殑涓琛?void mySignal() 瀹氫箟浜嗕俊鍙?mySignal錛岃繖涓俊鍙鋒病鏈夋惡甯﹀弬鏁幫紱
鎺ヤ笅鏉ョ殑涓琛?void mySignal(int x) 瀹氫箟 浜嗛噸鍚嶄俊鍙?mySignal錛屼絾鏄畠鎼哄甫涓涓暣褰㈠弬鏁幫紝榪欐湁鐐圭被浼間簬 C++ 涓殑铏氬嚱鏁般?br />浠庡艦寮忎笂 璁蹭俊鍙風殑澹版槑涓庢櫘閫氱殑 C++ 鍑芥暟鏄竴鏍風殑錛屼絾鏄俊鍙峰嵈娌℃湁鍑芥暟浣撳畾涔夛紝鍙﹀錛屼俊鍙風殑榪斿洖 綾誨瀷閮芥槸 void錛屼笉瑕佹寚鏈涜兘浠庝俊鍙瘋繑鍥炰粈涔堟湁鐢ㄤ俊鎭?br />淇″彿鐢?moc 鑷姩浜х敓錛屽畠浠笉搴旇鍦?.cpp 鏂囦歡涓疄鐜般?br />
妲?br />妲芥槸鏅氱殑 C++ 鎴愬憳鍑芥暟錛屽彲浠ヨ姝e父璋冪敤錛屽畠浠敮涓鐨勭壒孌婃у氨鏄緢澶氫俊鍙峰彲浠ヤ笌鍏剁浉鍏寵仈銆傚綋涓庡叾鍏寵仈鐨勪俊鍙瘋鍙戝皠鏃訛紝榪欎釜妲藉氨浼氳璋冪敤銆傛Ы鍙互鏈夊弬鏁幫紝浣嗘Ы鐨勫弬鏁頒笉鑳芥湁緙虹渷鍊箋?br />鏃㈢劧妲芥槸鏅氱殑鎴愬憳鍑芥暟錛屽洜姝や笌鍏跺畠鐨勫嚱鏁頒竴鏍鳳紝瀹冧滑涔熸湁瀛樺彇鏉冮檺銆傛Ы鐨勫瓨鍙栨潈闄愬喅瀹氫簡璋佽兘澶熶笌鍏剁浉鍏寵仈銆傚悓鏅氱殑 C++ 鎴愬憳鍑芥暟涓鏍鳳紝妲藉嚱鏁頒篃鍒嗕負涓夌綾誨瀷錛屽嵆 public slots銆?/span>private slots 鍜?nbsp;protected slots銆?br />public slots錛氬湪榪欎釜鍖哄唴澹版槑鐨勬Ы鎰忓懗鐫浠諱綍瀵硅薄閮藉彲灝嗕俊鍙蜂笌涔嬬浉榪炴帴銆傝繖瀵逛簬緇勪歡緙栫▼闈炲父鏈夌敤錛屼綘鍙互鍒涘緩褰兼浜掍笉浜嗚В鐨勫璞★紝灝嗗畠浠殑淇″彿涓庢Ы榪涜榪炴帴浠ヤ究淇℃伅鑳藉姝g‘鐨勪紶閫掋?br />protected slots錛氬湪榪欎釜鍖哄唴澹版槑鐨勬Ы鎰忓懗鐫褰撳墠綾誨強鍏跺瓙綾誨彲浠ュ皢淇″彿涓庝箣鐩歌繛鎺ャ傝繖閫傜敤浜庨偅浜涙Ы錛屽畠浠槸綾誨疄鐜扮殑涓閮ㄥ垎錛屼絾鏄叾鐣岄潰鎺ュ彛鍗撮潰鍚戝閮ㄣ?br />private slots錛氬湪榪欎釜鍖哄唴澹版槑鐨勬Ы鎰忓懗鐫鍙湁綾昏嚜宸卞彲浠ュ皢淇″彿涓庝箣鐩歌繛鎺ャ傝繖閫傜敤浜庤仈緋婚潪甯哥揣瀵嗙殑綾匯?br />妲戒篃鑳藉澹版槑涓鴻櫄鍑芥暟錛岃繖涔熸槸闈炲父鏈夌敤鐨勩?br />妲界殑澹版槑涔熸槸鍦ㄥご鏂囦歡涓繘琛岀殑銆備緥濡傦紝涓嬮潰澹版槑浜嗕笁涓Ы錛?br />public slots: 
    
void mySlot(); 
    
void mySlot(int x); 
    
void mySignalParam(int x,int y);
    
    
淇″彿涓庢Ы鐨勫叧鑱?br />閫氳繃璋冪敤 QObject 瀵硅薄鐨?nbsp;connect 鍑芥暟鏉ュ皢鏌愪釜瀵硅薄鐨勪俊鍙蜂笌鍙﹀涓涓璞$殑妲藉嚱鏁扮浉鍏寵仈錛岃繖鏍峰綋鍙戝皠鑰呭彂灝勪俊鍙鋒椂錛屾帴鏀惰呯殑妲藉嚱鏁板皢琚皟鐢ㄣ傝鍑芥暟鐨勫畾涔夊涓嬶細
static bool QObject::connect(const QObject *sender, const char *signal,const QObject *receiver, const char *method,Qt::ConnectionType type)


                      
鐢ㄤ俊鍙穝ignals鍜屾Ыslots闇娉ㄦ剰鐨勫熀鏈棶棰樻槸錛?br />鍦ㄦ墍鏈夊寘鍚玸ignal涓巗lot鐨勭被鐨勫0鏄庝腑:
1)鍦ㄧ被class澹版槑涓繀欏誨姞鍏_OBJECT
2)綾葷殑澹版槑鏂囦歡蹇呴』鎴愬崟鐙繚瀛樹竴涓埌.h鏂囦歡

 



澶╀笅 2012-08-24 15:41 鍙戣〃璇勮
]]>
qt瀛︿範絎旇錛?錛夛細閲嶈鐐?/title><link>http://www.shnenglu.com/aaxron/archive/2012/08/24/188143.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Fri, 24 Aug 2012 07:39:00 GMT</pubDate><guid>http://www.shnenglu.com/aaxron/archive/2012/08/24/188143.html</guid><wfw:comment>http://www.shnenglu.com/aaxron/comments/188143.html</wfw:comment><comments>http://www.shnenglu.com/aaxron/archive/2012/08/24/188143.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/aaxron/comments/commentRss/188143.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aaxron/services/trackbacks/188143.html</trackback:ping><description><![CDATA[<div style="border-bottom-color: #cccccc; border-bottom-width: 1px; border-bottom-style: solid; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-bottom: 4px; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top-color: #cccccc; border-top-width: 1px; border-top-style: solid; border-right-color: #cccccc; border-right-width: 1px; border-right-style: solid; padding-top: 4px; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">qt瀛︿範絎旇(</span><span style="color: #000000">1</span><span style="color: #000000">)<br /><br /></span><span style="color: #000000">0</span><span style="color: #000000">.<br />C</span><span style="color: #000000">++</span><span style="color: #000000">涓璭xplicit鍏抽敭瀛楀彧瀵規瀯閫犲嚱鏁拌搗浣滅敤錛岀敤鏉ユ姂鍒墮殣寮忚漿鎹€?br /><br /></span><span style="color: #000000">1</span><span style="color: #000000">.<br />鏀瑰彉鏁翠釜搴旂敤紼嬪簭鐨勯粯璁ゅ瓧浣撲嬌鐢≦Application::setFont()<br /><br /></span><span style="color: #000000">2</span><span style="color: #000000">.<br />鐢ㄤ俊鍙穝ignals鍜屾Ыslots闇娉ㄦ剰鐨勫熀鏈棶棰樻槸錛?br />鍦ㄦ墍鏈夊寘鍚玸ignal涓巗lot鐨勭被鐨勫0鏄庝腑:<br /></span><span style="color: #000000">1</span><span style="color: #000000">)鍦ㄧ被class澹版槑涓繀欏誨姞鍏_OBJECT<br /></span><span style="color: #000000">2</span><span style="color: #000000">)綾葷殑澹版槑鏂囦歡蹇呴』鎴愬崟鐙繚瀛樹竴涓埌.h鏂囦歡<br /><br /><br /></span><span style="color: #000000">3</span><span style="color: #000000">.<br />QObject::connect鏄潤鎬佸嚱鏁?榪斿洖鍊糱ool綾誨瀷.<br /></span><span style="color: #0000ff">static</span><span style="color: #000000">  </span><span style="color: #0000ff">bool</span><span style="color: #000000"> QObject::connect ( </span><span style="color: #0000ff">const</span><span style="color: #000000"> QObject </span><span style="color: #000000">*</span><span style="color: #000000"> sender, </span><span style="color: #0000ff">const</span><span style="color: #000000"> </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000"> signal,</span><span style="color: #0000ff">const</span><span style="color: #000000"> QObject </span><span style="color: #000000">*</span><span style="color: #000000"> receiver, </span><span style="color: #0000ff">const</span><span style="color: #000000"> </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000"> member );    <br />    <br /><br /></span><span style="color: #000000">3</span><span style="color: #000000">.QT4涓璔Widget鐨勬瀯閫犲嚱鏁?<br /></span><span style="color: #0000ff">explicit</span><span style="color: #000000"> QWidget(QWidget</span><span style="color: #000000">*</span><span style="color: #000000"> parent </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">, Qt::WindowFlags f </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">);<br /><br />4.</span><strong style="color: #454545; font-family: Tahoma, Arial, Helvetica, STHeiti; line-height: 25px; "><em>Multiple Inheritance Requires QObject to Be First</em>錛堝閲嶇戶鎵縌Object涓瀹氳鏀懼湪鍓嶉潰錛?br /><br />5.</strong><span style="font-family: arial, 甑措, Gulim, dotum, 霃嬱泙, sans-serif; line-height: 24px; ">moc涓嶆墿灞曞畯錛屾墍浠ヤ俊鍙峰拰妲界殑瀹氫箟涓嶈兘浣跨敤瀹忥紝 鍖呮嫭connect鐨勬椂鍊欎篃涓嶈兘鐢ㄥ畯鍋氫俊鍙峰拰妲界殑鍚嶅瓧浠ュ強鍙傛暟<br /></span><span style="font-family: arial, 甑措, Gulim, dotum, 霃嬱泙, sans-serif; font-size: 14px; line-height: 24px; ">tr涔熶笉鏀寔浣跨敤瀹忋?/span><span style="font-family: arial, 甑措, Gulim, dotum, 霃嬱泙, sans-serif; line-height: 24px; "><br /></span></div><br /><font face="arial, 甑措, Gulim, dotum, 霃嬱泙, sans-serif"><span style="line-height: 24px;"><br /></span></font><img src ="http://www.shnenglu.com/aaxron/aggbug/188143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2012-08-24 15:39 <a href="http://www.shnenglu.com/aaxron/archive/2012/08/24/188143.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>qt瀵硅瘽妗?綰跨▼灝忚瘯http://www.shnenglu.com/aaxron/archive/2011/09/22/156513.html澶╀笅澶╀笅Thu, 22 Sep 2011 02:24:00 GMThttp://www.shnenglu.com/aaxron/archive/2011/09/22/156513.htmlhttp://www.shnenglu.com/aaxron/comments/156513.htmlhttp://www.shnenglu.com/aaxron/archive/2011/09/22/156513.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/156513.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/156513.html//thread.h
#pragma once
#define QT3_SUPPORT
#include 
<iostream>
#include 
<cstdio>
#include 
<unistd.h>
#include 
<Qt/qapplication.h>
#include 
<Qt/qpushbutton.h>
#include 
<qmessagebox.h> 
#include 
<Qt/qdialog.h>
#include 
<Qt/qthread.h>
#include 
<QString>


template
<typename T>
class Thread : public QThread
{
public:
    Thread();
    
~Thread();
    
void run();
    
void setTObj(T* pobj);
public:
    
int flag;
    unsigned 
int pos;
    T
* pTObj;
};


template
<typename T>
Thread
<T>::Thread()
{
    flag 
= 1;
    pos 
=0;
}

template
<typename T>
Thread
<T>::~Thread()
{

}

template
<typename T>
void Thread<T>::run()
{
    
//QMessageBox::information( NULL, "Application name","Started.\n");
    QString strText;
    
while(flag)
    {
        strText.sprintf(
"flag:%d",pos);
        pTObj
->setWindowTitle(strText);
        pos
++;
        QThread::msleep(
500);
    }
}

template
<typename T>
void Thread<T>::setTObj(T* pobj)
{
    pTObj 
= pobj;
}

//ProcessDialog.h
#pragma once
#define QT3_SUPPORT

#include 
<iostream>
#include 
<cstdio>
#include 
<unistd.h>
#include 
<Qt/qapplication.h>
#include 
<Qt/qpushbutton.h>
#include 
<qmessagebox.h> 
#include 
<Qt/qdialog.h>
#include 
<Qt/qthread.h>
#include 
<QString>
#include 
"Thread.h"

class ProcessDialog :public QDialog 
{
    Q_OBJECT
public:
    ProcessDialog(QWidget
* parent=0)
        :btnStop(
"Stop",this)
        ,btnWork(
"Work",this)
    {
        btnStop.setGeometry( 
62407530 );
        btnWork.setGeometry( 
162,1407530 );

        threadA.setTObj(
this);

        connect(
&btnWork,SIGNAL( clicked()),this,SLOT(start()) );
        connect(
&btnStop,SIGNAL( clicked()),this,SLOT(stop()) );
    }

public:
    QPushButton btnStop;
    QPushButton btnWork;
    
private slots:
        
void start()
        {
            btnWork.setText(
"Working");
            threadA.start();
            threadA.flag 
= 1;
        }
        
void stop()
        {
            btnWork.setText(
"Work");
            threadA.flag 
= 0;
            
//threadA.pos  = 0;
        }

private:
    Thread
<ProcessDialog> threadA;    
};


//main.cpp
#define QT3_SUPPORT
#include 
<iostream>
#include 
<cstdio>
#include 
<unistd.h>
#include 
<Qt/qapplication.h>
#include 
<Qt/qpushbutton.h>
#include 
<qmessagebox.h> 
#include 
<Qt/qdialog.h>
#include 
<Qt/qthread.h>
#include 
<QString>
#include 
"Thread.h"
#include 
"ProcessDialog.h"

int main( int argc, char **argv )
{
    QApplication app( argc, argv );
    ProcessDialog dlg;
    app.setMainWidget( 
&dlg );
    dlg.resize(
640,480);
    dlg.setModal(
true);
    dlg.exec();
    
return app.exec();
}



澶╀笅 2011-09-22 10:24 鍙戣〃璇勮
]]>
中文精品久久久久人妻不卡| 亚洲精品无码久久久久| 亚洲午夜无码久久久久| 国产精品熟女福利久久AV| 色婷婷综合久久久中文字幕 | 久久久久久久久波多野高潮| 久久久久国产成人精品亚洲午夜| 久久免费视频观看| 久久精品国产精品亚洲精品| 97久久综合精品久久久综合| 精品综合久久久久久888蜜芽| 久久婷婷五月综合成人D啪| 女人高潮久久久叫人喷水| 久久亚洲精品无码播放| 欧美亚洲另类久久综合婷婷| 久久精品国产亚洲Aⅴ香蕉| 2021国产成人精品久久| 青草影院天堂男人久久| 9久久9久久精品| 久久精品国产亚洲综合色| 曰曰摸天天摸人人看久久久| 国产精品内射久久久久欢欢| 亚洲精品高清久久| 久久艹国产| 久久久久久久综合狠狠综合| 精品伊人久久大线蕉色首页| 久久精品a亚洲国产v高清不卡| 成人免费网站久久久| 久久99精品国产麻豆不卡| 麻豆久久| 伊人久久大香线蕉亚洲五月天| 无遮挡粉嫩小泬久久久久久久 | 色综合久久最新中文字幕| 久久性精品| 久久久久免费精品国产| 国产产无码乱码精品久久鸭| 久久精品人人做人人妻人人玩 | 国产成人久久精品激情| 久久99精品久久久久子伦| 国产亚洲精午夜久久久久久| 久久综合久久综合亚洲|