Qt Designer UI 中的设计模式

    Qt UI文件的实现原理很简单。但是,如果做过C#或者Android的经验,会觉得Qt的实现方式还是更加复杂一些的。Java/C#中实现这种功能的时候,并不需要转换为代码。而是由代码直接读取ui文件的文本,由文本内的信息直接构建ui对象。为什么Java/C# 可以做到,C++不行,这是为什么呢?原因很简单,因为C++没有“反射”这个语言特性。如果没有反射,就不能简单的实现从字符串构造对象。那么就没有办法不修改代码、只修改ui文件而实现修改程序ui的目的。
    在Qt中,每个UI文件就是一个工具类。针对它绑定的一个Widget实现类,初始化ui并绘制。所以,qt designer的作用,就是把构造UI,记录到文本(ui文件),通过一种工具(uic)转换为工具类的C++ 代码,也就是一个ui_前缀的头文件,这个文件的内容非常简单啊。只有两个接口:setupUI、retranslateUi。通过setupUI(QWidget* w) 接口来访问真正的QT view 对象  MySomeTypeWidget w,通过retranslateUi来实现多语言翻译。建议这里的w 使用字符串MySomeTypeWidget与Widget class同名这种规范。绘制一个widget,我们需要写的代码就是如下三个文件。

    MySomeTypeWidget.h
    MySomeTypeWidget.cpp
    MySomeTypeWidget.ui

   在C++中,我们包含 ui_MySomeTypeWidget.h。直接使用 MySomeTypeWidgetImpl 对象来辅助绘制widget。C++文件中,就没有widget 绘制的代码了。对于多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值