接着上节的内容,我们还是按照既定的目标,在对控件完成简单的介绍后我们需要介绍一个综合的实例,这样有助于我们更好的将理论与实践结合起来。
本节将述的Slider包含两个类:
1.SliserGroup是用户自定义控件,继承于QGroupBox类
. 其内部包含 QSlider 、QScrollBar 、QDial.
2.主窗口包含QStackWidget和QGroupBox,其中QStackWidget相当于一个容器来容纳SliderGroup,QGroupBox包含几个控件,这些控件控制类似滑块的控件的行为。
#include <QWidget>
#include <QLabel>
#include <QSpinBox>
#include <QCheckBox>
#include <QComboBox>
#include <QGroupBox>
#include <QStackedWidget>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QGridLayout>
#include "slidersgroup.h"
namespace Ui {
class SliderWidget;
}
class SliderWidget : public QWidget
{
Q_OBJECT
public:
explicit SliderWidget(QWidget *parent = nullptr);
~SliderWidget();
private:
Ui::SliderWidget *ui;
QGroupBox *controlGroup;
QLabel *minimumLabel;
QLabel *maximumLabel;
QLabel *currentLabel;
QSpinBox *minimumSpinBox;
QSpinBox *maximumSpinBox;
QSpinBox *currentSpinBox;
QCheckBox *invertedAppearance;
QCheckBox *invertedKeyBindings;
QComboBox *orientationCombo;
QStackedWidget *stackWidget;
SlidersGroup *horizontalSlider;
SlidersGroup *verticalSlider;
};
#endif // SLIDERWIDGET_H
在其头文件中声明变量,可以看到horizontalSlider、verticalSlider两个私有成员,分别代表水平方向放置的组合slider和垂直方向放置的Slider。
minimumLabel = new QLabel(tr("M&inimum value:"));
minimumSpinBox = new