目录
1、背景
Qt的UI设计器提供了很多GUI设计的界面组件,可以满足常见的界面设计需求。但是某些时候需要特殊的界面组件,而在UI设计器的组件面板里根本没有合适的组件,这时就需要设计自定义的界面组件。
2、设计自定义界面组件
所有界面组件的基类是QWidget,要设计自定义的界面组件:
(1)可以从QWidget继承一个自定义的类,重定义其panitEvent()事件,利用Qt的绘图功能绘制组件外观,并实现需要的其它功能;
(2)也可以从组件面板里拖拽一个QWidget作为父组件,在这个组件里面添加其它现有组件组合为一个自定义组件;
比如我们在用到QTableWidget/QTableView时,经常会有翻页的需求,那么我们可以设计一个页面控制器组件,这里我们采用第2种方式来设计,如下图:
我通过拖拽QWidget作为父组件,在QWidget上添加了一些QLabel、QPushButton、QComboBox等实现了自定义的页面控制器组件。
3、提升为自定义组件
在使用时,将自定义组件的代码文件拷贝的工程中,然后在要使用的界面上拖拽一个QWidget,右键选择提升为,输入自定义组件的类名,选择基类为QWidget;
然后点击添加,最后点击提升即可提升完成,提升后显示如下:
4、效果
5、源码
GitHub:https://github.com/liupeng2015bj/Qt-Custom-Widget,欢迎star。。。