• 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();
    	}
    }
    
  • 相关阅读:
    染色体共线性可视化
    Hi-C互作热图作图神器-HiCPlotter
    利用ONT测序检测真核生物全基因组甲基化状态
    scRNAseq benchmark 学习笔记
    友情链接
    关于
    TF目标检测API-Error: Argument must be a dense tensor: range(0, 3)
    python字符串使用
    Ubuntu下几个命令
    转::linux应用之gcc环境的安装
  • 原文地址:https://www.cnblogs.com/hanzhaoxin/p/2783459.html
Copyright © 2020-2023  润新知