点击按钮,关闭程序 ;滑动单个滑动条改变对应数字显示框的数字;
基于qt5;
显示效果和第六章的显示效果事一样的,只是语句更复杂一点;
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QVBoxLayout> //垂直分布控件的声明和调用;
#include <QWidget> //基础窗口部件的声明和调用;
//前置的滑动条类的声明;
class QSlider;
//声明一个新的类LCDRange继承QWidget;
class LCDRange:public QWidget
{
Q_OBJECT;
public:
//继承QWidget的构造函数类LCDRange;
LCDRange(QWidget *parent=0);
//查询滑动条的值函数;
int value() const;
public slots:
//设置滑动条的值函数;
void setValue(int);
signals:
//滑动条数值改变函数;
void valueChanged(int);
private:
//设置slider只能被当前类使用;
QSlider *slider;
};
#endif // MAINWINDOW_H
//main.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QPushButton> //按钮类的声明和调用;
#include <QSlider> //滑动条的声明和调用;
#include <QLCDNumber> //lcd数字显示框的声明和调用;
#include <QVBoxLayout> //垂直布局控件的声明和调用;
#include <QGridLayout> //栅格布局控件的声明和调用;
//声明一个新的类MyWidget继承QWidget;
class MyWidget:public QWidget
{
public:
//继承QWidget的构造函数类MyWidget;
MyWidget(QWidget *parent=0);
};
//实现构造函数MyWidget;
MyWidget::MyWidget(QWidget *parent):QWidget(parent)
{
//声明两个新的整形变量r和c,并赋值为0;
int r=0,c=0;
//声明一个新的按钮名称quit;
QPushButton *quit=new QPushButton;
//定义按钮文本名称为quit;
quit->setText("quit");
//定义按钮字体为Times,字号为18,加粗;
quit->setFont(QFont("Times",18,QFont::Bold));
//连接信号和槽:当按钮quit被按下时,关闭所有窗口;
QObject::connect(quit,SIGNAL(clicked()),qApp,SLOT(quit()));
//声明一个新的栅格布局控件名称为grid;
QGridLayout *grid=new QGridLayout;
//循环4次;
for(r=0;r<4;r++)
//循环4次;
for(c=0;c<4;c++)
{
//声明一个新的LCDRange类名称为lcdRange;
LCDRange *lcdRange=new LCDRange;
//将lcdRange添加到栅格布局控件grid中,位置为r行c列;
grid->addWidget(lcdRange,r,c);
}
//声明一个新的垂直布局控件名称为layout;
QVBoxLayout *layout=new QVBoxLayout;
//将按钮quit添加到垂直分布控件lalayout中;
layout->addWidget(quit);
//将栅格布局控件grid添加到垂直分布控件lalayout中;
layout->addLayout(grid);
//定义当前页面布局为垂直分布布局layout;
setLayout(layout);
}
//主函数;
int main(int argc,char *argv[])
{
//创建并且处理这些命令行变量;
QApplication a(argc, argv);
//声明一个程序窗口名称为"w";
MyWidget w;
//显示"w"窗口;
w.show();
//返回exec;
return a.exec();
}
//mainwindow.cpp
#include "mainwindow.h"
#include <QSlider> //滑动条类的声明和调用;
#include <QLCDNumber> //lcd数字显示框的声明和调用;
//实现构造函数LCDRange;
LCDRange::LCDRange(QWidget *parent):QWidget(parent)
{
//声明一个新的lcd数字显示框名称为lcd
QLCDNumber *lcd=new QLCDNumber;
//定义lcd数字显示框lcd的显示位数为3位;
lcd->setDigitCount(3);
//声明一个新的滑动条名称为slider;
QSlider *slider=new QSlider;
//定义滑动条slider为"水平活动";
slider->setOrientation(Qt::Horizontal);
//定义滑动条slider最小值为"0";
slider->setMinimum(0);
//定义滑动条slider最大值为"100";
slider->setMaximum(100);
//定义滑动条起始位置为"0";
slider->setValue(0);
//定义滑动条步进为"1";
slider->setSingleStep(1);
//连接信号和槽:当滑动条slider位置发生改变时,显示在lcd数字显示框上面;
QObject::connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
//声明一个新的垂直分布控件名称为part;
QVBoxLayout *part = new QVBoxLayout;
//将lcd数字显示框lcd添加到垂直分布控件part中;
part->addWidget(lcd);
//将滑动条slider添加到垂直分布控件part中;
part->addWidget(slider);
//定义当前页面布局为垂直分布布局part;
setLayout(part);
}
//滑动条渲染函数;
int LCDRange::value() const
{
return slider->value();
}
//滑动条渲染显示函数;
void LCDRange::setValue(int value)
{
slider->setValue(value);
}
运行效果
有任何问题请留言,感谢支持;
网友评论