使用designer
Qt用户可能会经历这样的3个阶段:
- 刚接触Qt,在designer中拖拖拽拽,一个界面就形成了。相当方便(不过不少人网友初次接触时对layout相当不适应)
- 比较熟悉之后,感觉designer是个累赘,比如:
- 感觉在designer中拖拽控件,完全没有在代码中写的易于控制。尽管都是用QLayout
- 接触到自定义控件后,发现在designer中使用自定义控件比较麻烦。
- 就是不太喜欢desinger生成.ui文件,然后uic生成 ui_xxx.h文件的这套东西。
- ...
- 再过一段时间,发觉,designer确实很方便。而且通过提升法在designer中使用自定义控件是非常简单的。而且前一阶段的问题其实也都不算什么问题。
自定义控件
考虑下列情况:
- 从QWidget派生了一个led灯控件:HLed
- 从QSpinBox派生了一个进制可变的:HBaseSpinBox
- 从QLabel派生了一个发射但双击信号的:HLabel
- ...
恩,没什么特别的哈
- 如果在代码中使用的话,包含头文件直接用即可。和标准控件没有任何区别。
- 如果在designer中使用,分别拖放QWidget、QSpinBox、QLabel,然后右键点击提升...
提升 vs 插件
两种方法有什么区别么?什么区别?
先考虑我们是如何使用designer的(此处不考虑.ui动态加载):
- 打开designer,拖放控件,应用布局,设置属性
- 保存,生成 XXX.ui 文件
- 调用 uic 将 XXX.ui 预处理成 ui_XXX.h
-
调用C++编译器编译这些*.h、*.cpp
注意,如果你写了插件,那么它只在第一步中有用。有什么用:
归根到底,插件法 和 提升法想比,其实没有本质的区别。二者都是要生成一个.ui文件,而这个文件的使用,和插件一点关系都没有。
还有点什么...
前面的东西都似乎没什么意思,因为Manual中介绍很清楚,只要用过提升法和插件法就能得出上面这些的东西。
可是,还有有一点可能稍微有点意思,考虑:
- 我从QStackedWidget派生类了一个HDoubleSpinBox。可是在designer中,我想看到一个QDoubleSpinBox,而不是一个stacked widget.
- 我从QLabel派生了一个HLabelButton。可是在designer中,我想看到一个QToolButton,而不是一个 QLabel
- ...
插件法能不能做到?
能,只要让插件的createWidget()创建一个QDoubleSpinBox或者QToolButton
提升法能不能做到?
能,注意到提升时我们我们需要选择一个基类。而这个基类,我们可以随便选,选择哪一个,哪一个就会作为替身显示出来。
(注意:本文中忽略了很多细节,希望不会造成误导...)
分享到:
相关推荐
Qt4下的自定义Button控件源码,将生成的.so控件库,拷贝到QtDesigner目录下,在QtDesignerIDE开发环境中就可以看到Button控件
该代码实现了将新自定义的控件集成到Qt Designer中,以后可以像使用QPushButton一样非常方便的使用该控件,并附有使用说明。
当QTwidget的控件不满足开发者的需求的时候,如何在QT中快捷的添加自定义控件
GUI开发示例代码---QTdesigner实现自定义槽函数
仅供初学者参考学习,Qt5开发的自定义控件 许多精美样式控件 觉得不错的小伙给予我反馈 还有四五十套源码之后慢慢上传分享
Qt 自定义 Calendar 日历 控件 方便控制 及实现样式表
Qt编写的自定义控件属性设计器
学习创建和使用自定义控件写的试验代码,centos qt5.8可以使用。具体实现过程见我的文章:http://blog.csdn.net/csdn83419527/article/details/78870487 调试过程中出现的问题都有描述。另外控件代码用的lx100991的...
在Qt设计中UI设计中经常遇到到一些Qt自带的控件不能满足应用的情景,最常用的办法就编写用户自定义的控件。自定义控件通常用两种方法来是实现:一种是继承基本控件类重新自定义一个新控件类,同时具备父控件的属性;...
qt自定义控件编译和使用流程,以及在使用过程中遇到的一问题及需要注意的地方
qt常用控件-自定义。
#SlideNavigationApp 滑动导航界面 编译环境: Qt5.x + mingw-QtCreater 运行截图: 注意事项: 此工程需要用到SlideNavigation这个工程中的2个文件slidenavigation.h和slidenavigation.cpp文件,不知道在如何引用,知道...
Qt自定义控件代码Demo,在我的博客里面有相关的教程 !
分享一个Qt实现的滑动设置自定义控件,常用于设置时间,还有一些其他的类似设置; 没有积分的朋友私信我
Qt5实现自定义控件默认一个DLL文件中只能包含一个控件,在参考Qwt6.1.3的源码后,实现一个dll文件内包含多个控件,并在Designer内集成,实际使用测试。压缩包内包含说明文档及示例。
该示例是博文“QT如何编写和使用自定义控件”的附件,其中有两个QT工程,一个是制作自定义控件工程,一个是使用自定义控件的工程
Qt 自定义 IP地址控件 实现通过左右方向键切换输入点,通过按钮.实现切换。自适应大小分布
包含一些QT5自定义控件的例子,自定义表盘,自定义进度条等
本文实例为大家分享了Qt自定义控件实现简易仪表盘的具体代码,供大家参考,具体内容如下 Qt自定义控件12:简易仪表盘(根据liudianwu大神的界面自己写的代码,建议去学习刘大神,会受益良多的) 先看效果图: 思路...
里面包含十套自定义的Qt控件导入工程可直接编译运行,适用于初学者,所有源码都是开源,难度不大可以自学,后续看各位小伙伴的需求持续上传自定义控件demo,或者可以私聊我找我拿资源。