Qt单个类加载独立界面文件ui的两种方式

问题描述:

昨天遇到一个Qt程序源码里不带UI界面文件的项目,界面控件都是写在cpp代码里面,界面比较简单,所以在构造函数里面放个100行代码不到就够了。

但是我要增加一些功能,继续添加下去会比较难看。虽然在类的实现里面写界面,可以比较方便地使用到这些界面控件,尤其是当你有其他类想要直接调用当前类的控件时,那确实比较爽。

但是,也许会稍微麻烦一些,使用ui界面,相对代码来说,要更加直观,而且QtCreator直接创建界面类难道不香吗?拖几个控件,点个栅格布局,界面自动整齐排列,比Android Studio好用。

这里,我需要修改以前cpp里面的界面代码,然后我要添加一个ui界面文件,它是通过QtCreator新建的,没有事先绑定类文件的。所以,需要自己手动处理。

两种方式:

1.手动绑定,像QtCreator添加界面类那样,仿照着改原先那个没有界面的类就行。

2.使用QUiLoader,像Android里面的inflater.getInflate()那样,动态添加UI界面文件。

解决办法:

第一种方式:

一个类只能绑定一个UI文件,这个类需要是继承自QWidget等界面控件的类。

在QtCreator自动创建的模板界面类中,头文件中声明一个namespace Ui,如下:

猜你喜欢

转载自blog.csdn.net/poolooloo/article/details/129473644
今日推荐