qt_初学(一)_基于QTimer之计数器设计

来源:互联网 发布:照片文字软件下载 编辑:程序博客网 时间:2024/05/16 04:39
心静不下来的时候,就想给自己找点事情做,如此就学习新的知识,qt的学习已经有几天了,想把这几天学习的东西记写在这里,以用来以后查阅方便,顺便记录自己的学习历程.今天看到这个关于计数器的小练习,朋友说我这么low的东西还往上写啊,好丢人啊,我觉得没什么,凡是都是需要一定的过程的,对于初学QT的我来说,第一次将程序转化为界面化的过程还是让我感到十分高兴的,代码毕竟是时分枯燥和冷漠的,虽然很喜欢敲写代码的节奏感,但对于能够将繁琐的代码语言转化为任何人都可以看到和使用的界面又何尝不让人快乐呢.直接上题:

这里写图片描述

根据题目的要求呢,首先选择MainWindow创建一个countor.pro工程,在.ui文件上添加3个pushbutton,LCD number如图所示:

这里写图片描述

具体代码如下:

main.cpp

#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow w;    w.show();    return a.exec();}

mainwindow.h

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include<QTimer>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{    Q_OBJECTpublic:    explicit MainWindow(QWidget *parent = 0);    ~MainWindow();    void xianshi();private slots:    void on_pushButton_clicked();    void on_pushButton_3_clicked();    void on_pushButton_2_clicked();    void on_action_triggered();private:    Ui::MainWindow *ui;    int num;    int miao;    QTimer* t;    QTimer* t1;    int flag;    int flag1;public slots:    void counter();    void counter_miao();};#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"#include "ui_mainwindow.h"#include"guanyu.h"MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    t= new QTimer;    t1= new QTimer;    connect(t,SIGNAL(timeout()),this,SLOT(counter()));    connect(t1,SIGNAL(timeout()),this,SLOT(counter_miao()));    num=0;    miao=0;    flag=0;    flag1=0;}MainWindow::~MainWindow(){    delete ui;}void MainWindow::counter(){    num++;    if(flag==1)return;    xianshi();}void MainWindow::counter_miao(){    miao++;    QString temp = QString::number(miao,10);    ui->lineEdit->setText(temp);}void MainWindow::on_pushButton_clicked(){    t->start(1000);flag=0;flag1=0;    t1->start(100);}void MainWindow::on_pushButton_3_clicked(){    flag1++;    if(flag1==1)t->stop();    else    {        num=0;xianshi();flag1=0;    }}void MainWindow::on_pushButton_2_clicked(){    flag++;    if(flag==2)flag=0;    xianshi();}void MainWindow::xianshi(){    QString temp = QString::number(num,10);    ui->lcdNumber->display(temp);}void MainWindow::on_action_triggered(){    guanyu e;    e.exec();}

guanyu.h

#ifndef GUANYU_H#define GUANYU_H#include <QDialog>namespace Ui {class guanyu;}class guanyu : public QDialog{    Q_OBJECTpublic:    explicit guanyu(QWidget *parent = 0);    ~guanyu();private:    Ui::guanyu *ui;};#endif // GUANYU_H

guanyu.cpp

#include "guanyu.h"#include "ui_guanyu.h"guanyu::guanyu(QWidget *parent) :    QDialog(parent),    ui(new Ui::guanyu){    ui->setupUi(this);}guanyu::~guanyu(){    delete ui;}
当我们按下开始之后会开始计时

这里写图片描述

这里写图片描述

这里写图片描述

 好吧,总结以下,确实好low的感觉,可能别人只需要十分钟不到就搞定的小程序,我要调试好久,查帮助文档,查看类成员使用,总算实现了基本功能,写程序会让人思维活跃,写东西会让人安静下来,我希望会一直保持这个习惯,不管是间的程序或者复杂的项目,一周让自己静下来那么几次,就当写写日记,记录下自己这种状态,每一次都在进步!加油!

<所思即所得-努力努力再努力>

0 0
原创粉丝点击