Qt自定义组件方法

Qt自定义组件方法

  该案例要实现一个如下图组件,右侧进度条会随着SpinBox数值的改变而做出相应变化。功能简单,主要是通过一个简单例子掌握Qt组件的实现方法。

    步骤1:UI设计器中,在需要放置自定义组件的位置放入Widget容器widge,并设置号Widget在UI界面的布局;

  步骤2:如下如,添加新文件-->选择C++ Class,点击chose按钮,进入下一界面,输出Class name,选择Base class为QWidget,下一步-->完成。

      

  步骤3:在myWidget.cpp类中添加如下代码:

 1 //包含需要用到的组件
 2 #include <QSpinBox>
 3 #include <QProgressBar>
 4 #include <QHBoxLayout>
 5 
 6 //构造函数中添加如下
 7     QSpinBox *spin = new QSpinBox(this);
 8     QProgressBar *progress = new QProgressBar(this);
 9     spin->setRange(0,100);
10     progress->setRange(0,100);
11 
12     QHBoxLayout *hLayout = new QHBoxLayout(this);
13     hLayout->addWidget(spin);
14     hLayout->addWidget(progress);
15 
16     connect(spin,SIGNAL(valueChanged(int)),progress,SLOT(setValue(int)));
View Code

  步骤4:在UI设计界面,右键点击在步骤1中添加的Widget容器,弹出右键菜单,选择“提升为”弹出如下图窗口:

    然后在提升的类名称中输入“myWidget”(步骤2中新添加类的名称,即自定义组件的对象名称),头文件自动补全,勾选全局包含,点击“添加”按钮,点击“提升”,在右侧组件属性窗口可以看出步骤1中添加的             widget组件的类名称变为myWidget,如下图:

    编译运行软件效果:

   

  以后在需要用到该自定义组件的地方,只需像步骤4中那样,右键菜单->提升为->选择“myWidget”即可。

  可以使用该方法实现自定组件,对Qt提供的组件进行功能扩充或者将不同组件组成一个组件,实现组件功能的扩展。

  最后,需要注意的是,被提升的组件和自定义组件必须为相同的基类,如该例中UI界面中被提升的widget组件基类和自定义组件基类都为QWidget类。

猜你喜欢

转载自www.cnblogs.com/Forward-Forever/p/10415719.html