Qt 教程一 —— 第七章:一个事物领导 另一个

点击按钮,关闭程序 ;滑动单个滑动条改变对应数字显示框的数字;

基于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);

}

运行效果

有任何问题请留言,感谢支持;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容