您的位置:首页 > 编程语言 > Qt开发

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

2016-09-08 17:38 736 查看
心静不下来的时候,就想给自己找点事情做,如此就学习新的知识,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_OBJECT

public:
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();

9691
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_OBJECT

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


<所思即所得-努力努力再努力>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: