c++ - 关于Qt中的控件拖拽
阿神
阿神 2017-04-17 11:33:26
0
2
559

Qt中的控件可以使用代码添加也可以通过界面编辑器手工拖拽,问题是那些拖拽的控件不能体现在代码里吗?我想针对控件做一些微调(譬如全屏窗口时,某个label依然居中)。这个好像只能通过代码修改布局吧。遇到这种问题时,怎么处理呢?还是你们都是用代码添加控件的?

阿神
阿神

闭关修行中......

全部回覆(2)
伊谢尔伦

(很久沒用 Qt 了,當時用的是 Qt4, 不過變化不大)

UI 設計器產出的是.ui 文件,.ui 文件會在編譯的時候被uic 編譯成ui_WidgetXXOO.h, 裡面定義了一個Ui_WidgetXXOO 的類,裡麵包含了設計器里通過拖拽添加的所有控制項對應變量,然後還有個setupUi 函數,用來完成你在設計器中對控制項所做的修改。

回到 WidgetXXOO 類,它會包含這個 ui_WidgetXXOO.h, 然後在構造函數以 this 為參數調用 Ui_WidgetXXOO::setupUi, 來加載你通過設計器來添加的控件,和做的修改。

以上的 UI 設計器的工作原理,你可以用 Qt Creator 建立一個預設項目,就可以看到我上面提到的那些程式碼。它是一個透明的工作過程,你如果需要自己來寫程式碼,修改控件,只需要在 WidgetXXOO 的建構函式中,緊接著 Ui_WidgetXXOO::setupUi, 來寫你要加的程式碼就可以了。

在 Qt 開發中,UI 設計器是一個非常好用的東西,通常能用 UI 設計器的都是直接拖,然後在此基礎上自己寫程式碼完成那些透過 UI 設計器完成不了的工作。

洪涛

介面編輯器實際上編輯的是.ui文件,你可以直接用文字編輯器開啟.ui文件進行編輯。這些拖曳的控件可以透過ui物件來獲取,所以即使是拖曳上去的控件,也可以由程式碼動態地控制它們。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板