zoukankan      html  css  js  c++  java
  • Qt之对话框设计——电子时钟

    digiclock.h

    #ifndef DIGICLOCK_H
    #define DIGICLOCK_H
    
    #include <QLCDNumber>
    #include <QPoint>
    
    class DigiClock : public QLCDNumber
    {
    	Q_OBJECT
    
    public:
    	DigiClock(QWidget *parent = 0);
    	~DigiClock();
    
    	void mousePressEvent(QMouseEvent *);
    	void mouseMoveEvent(QMouseEvent *);
    
    public slots:
    	void showTime();
    
    private:
    	QPoint	dragPosition;	//鼠标点击位置相对窗体左上角的偏移量
    	bool showColon;		//是否显示“:”
    };
    
    #endif // CLOCK_H
    

    digiclock.cpp

    #include "digiclock.h"
    #include <QPalette>
    #include <QTimer>
    #include <QTime>
    #include <QMouseEvent>
    
    DigiClock::DigiClock(QWidget *parent)
    	: QLCDNumber(parent)
    {
    	QPalette plt;	//实例化调色板对象
    	plt.setColor(QPalette::Window,Qt::blue);
    	setPalette(plt);
    
    	setWindowFlags(Qt::FramelessWindowHint);
    
    	setWindowOpacity(0.5);		//设置不透明度
    
    	QTimer *timer = new QTimer(this);
    	connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));
    	timer->start(1000);
    
    	showTime();
    
    	resize(150,60);
    	showColon = true;
    }
    
    DigiClock::~DigiClock()
    {
    
    }
    
    void DigiClock::showTime()
    {
    	QTime time = QTime::currentTime();
    	QString text = time.toString("hh:mm");
    	if(showColon)
    	{
    		text[2] = ':';
    		showColon = false;
    	}
    	else
    	{
    		text[2] = ' ';
    		showColon = true;
    	}
    	display(text);
    }
    
    void DigiClock::mousePressEvent(QMouseEvent * e)
    {
    	if (e->button() == Qt::LeftButton)
    	{
    		dragPosition = e->globalPos() - frameGeometry().topLeft();
    		e->accept();
    	}
    	if(e->button() == Qt::RightButton)
    	{
    		close();
    	}
    }
    
    void DigiClock::mouseMoveEvent(QMouseEvent * e)
    {
    	if(e->buttons() & Qt::LeftButton)
    	{
    		move(e->globalPos() - dragPosition);
    		e->accept();
    	}
    }
    
  • 相关阅读:
    CTO成长之路分享会
    MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文呢?我们来搞搞清楚
    《共享经济》创业沙龙
    旅游代购
    沙漏哟的书单
    qt5---滑动条QSlider
    qt5---步长调节器SpinBox和QDoubleSpinBox
    qt5--自定义控件封装
    qt5--表格控件QTableWidget
    qt5--树形控件QTreeWidget
  • 原文地址:https://www.cnblogs.com/hanzhaoxin/p/2783459.html
Copyright © 2011-2022 走看看