文档章节

Qt学习之路一(一个简单的时钟)

丿咖啡灬微凉
 丿咖啡灬微凉
发布于 2017/04/18 00:00
字数 484
阅读 8
收藏 0

  今天开始接触了qt,刚开始为了搭环境,找qt create找了好久,网上不怎么好找,找了一个晚上才找到的,先把资源分享一下给大家。

  QTSDK分享     http://pan.baidu.com/s/1cJ3jPW    (傻瓜式操作,直接安装,有点大,选择自己需要的系统版本)

  各版本的qt       http://download.qt.io/archive/qt/4.8/4.8.6/

  还有,本人英语不是太好,有些帮助手册看不太懂,也找了一个中文资料。

     http://www.kuqin.com/qtdocument/index.html


  以上的分享都是网上找的,希望大家在搭建环境的时候能少费一些功夫吧。

  在环境搭建好之后,我开始学着做个小项目,看看能不能把界面搭起来,也是找了很多资料,查了很多视频,个人觉得Qt小神童的教程很不错,简单易懂,很适合初学者。以下是我仿照写的一个小项目,一个时钟。

#ifndef CLOCK_H
#define CLOCK_H

#include <QtGui/QMainWindow>
#include <qpainter>
#include <QPoint>
#include <QTime>
#include <QTimer>

static QPoint sed[4] = {QPoint(0, -70), QPoint(2,0), QPoint(0,10), QPoint(-2,0)};
static QPoint min[4] = {QPoint(0, -60), QPoint(4,0), QPoint(0,12), QPoint(-4,0)};
static QPoint hour[4] = {QPoint(0, -50), QPoint(6,0), QPoint(0,13), QPoint(-6,0)};

class Clock : public QMainWindow
{
    Q_OBJECT
    
public:
    Clock(QWidget *parent = 0);
    ~Clock();
protected:
    void paintEvent(QPaintEvent *);
};

#endif // CLOCK_H


#include "clock.h"

Clock::Clock(QWidget *parent)
    : QMainWindow(parent)
{
    QTimer *timer = new QTimer(this);
    timer->start(1000);
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
    resize(200, 200);
}

Clock::~Clock()
{
    
}
void Clock::paintEvent(QPaintEvent *)
{
    QPainter  paint(this);

    QTime time = QTime::currentTime();
    paint.translate(100,100);
    //paint.drawLine(0,0,100,100);
    paint.setRenderHint(QPainter::Antialiasing);

    paint.setPen(QPen(Qt::black,0.5,Qt::DashLine));
    paint.setBrush(QBrush(Qt::white,Qt::SolidPattern));//设置画刷形式
    paint.drawEllipse(-100,-100,200,200);

    paint.setBrush(Qt::red);
    paint.setPen(Qt::red);
    paint.save();
    paint.rotate(6.0*time.second());
    paint.drawConvexPolygon(sed, 4);
    paint.restore();

    paint.setBrush(Qt::blue);
    paint.setPen(Qt::blue);
    paint.save();
    paint.rotate(6.0*time.minute()+time.second()/60.0);
    paint.drawConvexPolygon(min, 4);
    paint.restore();

    paint.setBrush(Qt::black);
    paint.setPen(Qt::black);
    paint.save();
    paint.rotate(30.0*time.hour()+time.minute()/60.0);
    paint.drawConvexPolygon(hour, 4);
    paint.restore();

    int i;
    for(i = 0; i < 12; i++)
    {
        paint.rotate(30);
        paint.drawLine(0,-98,0,-88);
    }

    for(i = 0; i < 60; i++)
    {
        paint.rotate(6);
        paint.drawLine(0,-98,0,-95);
    }
}

#include <QtGui/QApplication>
#include "clock.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Clock w;
    w.show();
    
    return a.exec();
}

                                                                           

本文转载自:http://blog.csdn.net/hjf161105/article/details/54918164

丿咖啡灬微凉
粉丝 1
博文 70
码字总数 0
作品 0
私信 提问
学习pyqt 基础-示例观赏 1

学习pyqt 示例观赏 1 哪里找到示例 windows下,个人采用安装包直接安装,(顺便推荐个网址,pythoner一定会喜欢 http://www.lfd.uci.edu/~gohlke/pythonlibs(最近上不去,不知道咋回事) ,...

Cosven
2014/08/17
269
0
算法学习之路|程序运行时间

要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”...

kissjz
2018/02/25
0
0
QT学习探索之路

近期由于工作需要在学习QT做界面开发,再次将我最近一个月的学习心得记录,同时欢迎各位大牛给我提出学习建议。 1:我的学习方法: 第一阶段: 主要是参考 C++ GUI Qt4 编程这本书 主要学习Q...

wb999999abc
2017/05/20
0
0
关于Qt5里的两个问题

第一个问题是 Qt学习之路47 里的booleanmodel.cpp文件 基类是QAbstractItemModel 有人说Qt5没有reset()函数,不知道有什么代替的。 第二个问题是 Qt学习之路48 里代码全部模仿的一样 错误: ...

李新浩
2014/03/06
244
0
Razor-Qt 0.4.1 发布,增加新组件和面板改进

Razor Qt, 是一个使用 Qt 开发的桌面环境,刚刚发布了 0.4.1 版本。 该版本带来三个新组件:razor-policykit, razor-power (电源管理工具) and razor-autosuspend (根据笔记本的电源状态挂起...

红薯
2012/02/15
904
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
693
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
39
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
25
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
74
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
73
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部