沒有找到mingwm10.dll,因此這個程序未能啓動。重新安裝應用程序可能會修復此問題...

“沒有找到mingwm10.dll,因此這個程序未能啓動。重新安裝應用程序可能會修復此問題。”(windows XP) 1》\debug 文件夾下的 *.exe 文件一雙擊執行就提示“沒有找到mingwm10.dll,因此這個程序未能啓動。重新安裝應用程序可能會修復此問題。” 這個問題可能是環境變量沒設置好,可以通過 我的電腦->屬性->高級->環境變量來修改 PATH,這樣能永久修改PATH. 現在我把"F:\ProgramFiles\Qt\2009.01\mingw\bin;F:\ProgramFiles\Qt\2009.01\qt\bin"加入到PATH後,可以運行了。 2》用 Qt designer 設計好 ***.ui 之後, 要得到所需要的 ***.h/***.cpp 文件時, 需要用到 uic.exe。 一開始以爲只要把uic.exe拷到*.ui同一文件夾下就可以了,當執行 uic ***.ui -o ***.h 時, 提示“沒有找到mingwm10.dll,因此這個程序未能啓動。重新安裝應用程序可能會修復此問題。” 之後試了下把 ***.ui 拷到 uic.exe 的文件夾下(F:\ProgramFiles\Qt\2009.01\qt\bin),用命令行 cmd 切換到該目錄下,再在執行 uic ***.ui -o ***.h, 可以得到相應的 ***.h 文件了。 另外,在Qt designer中好像可以直接通過工具欄 "窗體-->查看代碼" 來獲得 ***.h 的代碼, copy出來就OK了. 有一點需要注意:qt4之前的版本是需要 uic ***.ui -o ***.h / uic ***.ui -o ***.cpp 來得到 ***.h/***.cpp的, 而在 qt4 中之需要得到 ***.h. 關於這一點在另一篇文章 "Qt4與Qt3的主要不同" 中有比較詳細的說明. 既然要更新控件,那麼你就需要使用QDesigner工具來重新畫界面了,OK,重畫只是純體力勞動,好說。 界面畫好後,使用uic來根據界面生成代碼文件,QT3的uic可以自動生成.h和.cpp文件,假設你在製作一個名叫TestDialog的對話框,那麼 QT3的uic生成的文件則是TestDialog.h和TestDialog.cpp,所有的界面初始化工作都在cpp文件中執行,之後程序的邏輯代碼也將加入這個文件,那麼對於一個已經完成邏輯功能的對話框來說,如果要修改界面佈局,你就不得不重新用uic生成.h和.cpp文件,然後將其中界面相關的代碼複製到你已經修改的文件中,此時決不能直接用uic直接生成到修改過的文件上,因爲那樣你的代碼將全部被沖掉。 這一點上,QT4進步了,因爲QT4中推薦的方法是,使用uic根據界面文件生成一個h文件,以前面的TestDialog爲例,生成的文件叫做ui_TestDialog.h,其中會實現一個名爲Ui_TestDialog的類,包含了界面所有控件的加載功能,而程序的邏輯功能依然使用TestDialog.h,和 TestDialog.cpp這兩個功能,並在TestDialog.h中用多重繼承的方法,從剛纔的Ui_TestDialog類來繼承出實際的 TestDialog類,在TestDialog的構造函數中,只需要使用Ui_TestDialog::setupUi()方法,就可以構建出整個界面,並且由於是從Ui_TestDialog繼承來的,在邏輯代碼中也可以方便的訪問所有控件。 從這一點來說,QT4的方法是個巨大的進步,因爲ui_xxx.h中不再包含任何用戶自己寫的代碼了,此時你想更改界面佈局的話,只需要用QDesigner修改界面,再用uic生成ui_xxx.h文件,直接替換原文件就可以了。 當然,QT的ui_xxx.h文件還有其它的使用方法,不一定要使用多重繼承的方法,在這裏我只是介紹了我認爲最方便的方法。 另外,如果你所設計的界面比較複雜,需要將某部分界面獨立在其它Widget中設計和寫邏輯代碼,那麼最上層的Dialog的ui_xxx.h文件還是需要手動修改的,不過相對於QT3,這樣的修改還是非常簡單的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章