zoukankan      html  css  js  c++  java
  • QT透明显示文字

    实现效果:


    代码:

    #ifndef IMAGINIST_H
    #define IMAGINIST_H
    
    #include <QtWidgets/QWidget>
    #include <QtWidgets/QLabel>
    #include <QtCore/QPoint>
    #include <QtSql/QSqlDatabase>
    #include <QtSql/QSqlQuery>
    #include <QtSql/QSql>
    #include <QPalette>
    #include <QColor>
    #include <QFont>
    #include <QTimer>
    #include <QTime>
    #include "ui_imaginist.h"
    
    class imaginist : public QWidget
    {
    	Q_OBJECT
    
    public:
    	imaginist(QWidget *parent = 0);
    	~imaginist();
    protected:
    	void mousePressEvent(QMouseEvent *event);
    	void mouseMoveEvent(QMouseEvent *event);
    private:
    	Ui::imaginistClass ui;
    	QPoint Position;
    	QPalette pe;
    	QFont font;
    	QTimer * timer;
    	QSqlDatabase db;
    	QColor color;
    	QTime time;
    private slots:
    	void showText();
    };
    
    #endif // IMAGINIST_H
    

    #include "imaginist.h"
    #include <QLabel>
    #include <QPalette>
    #include <QColor>
    #include <QMouseEvent>
    #include <QtSql/QSqlDatabase>
    #include <QtSql/QSqlQuery>
    #include <QtSql/QSql>
    #include <QTimer>
    #include <QTime>
    
    imaginist::imaginist(QWidget *parent)
    	: QWidget(parent)
    {
    	ui.setupUi(this);
    	font.setPointSize(30);
    	font.setBold(true);
    
    	ui.showLabel->setFont(font);
    	ui.showLabel->setWordWrap(true);
    
    	db = QSqlDatabase::addDatabase("QMYSQL");
    	db.setHostName("localhost");
    	db.setDatabaseName("muxin");
    	db.setUserName("root");
    	db.setPassword("123");
    
    	timer = new QTimer;
    	connect(timer, SIGNAL(timeout()), this, SLOT(showText()));
    	timer->start(5000);
    }
    
    imaginist::~imaginist()
    {
    	delete timer;
    	timer = NULL;
    	db.close();
    }
    
    void imaginist::mousePressEvent(QMouseEvent *event)
    {
    	if (event->button() == Qt::LeftButton)
    	{
    		Position = event->globalPos() - frameGeometry().topLeft();
    		event->accept();
    	}
    	else if (event->button() == Qt::RightButton)
    	{
    		close();
    	}
    }
    void imaginist::mouseMoveEvent(QMouseEvent *event)
    {
    	move(event->globalPos() - Position);
    	event->accept();
    }
    
    void imaginist::showText()
    {
    	time = QTime::currentTime();
    	qsrand(time.msec() + time.second() * 1000);
    	//color = QColor((qrand() % 256, qrand() % 256, qrand() % 256));
    	color = QColor::fromHsl(rand() % 360, rand() % 256, rand() % 200);
    	pe.setColor(QPalette::WindowText, color);
    	ui.showLabel->setPalette(pe);
    	QString sql = "SELECT sentence FROM muxin WHERE id = ";
    	int count;
    	if (db.open())
    	{
    		QSqlQuery query;
    		query.exec("SELECT COUNT(*) FROM muxin");
    		while (query.next())
    		{
    			count = query.value(0).toInt();
    		}
    		sql += QString::number(qrand() % count);
    		query.exec(sql);
    		while (query.next())
    		{
    			ui.showLabel->setText(query.value(0).toString());
    		}
    	}
    }

    #include "imaginist.h"
    #include <QtWidgets/QApplication>
    
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	imaginist w;
    	w.setWindowOpacity(1.0);
    	w.setWindowFlags(Qt::FramelessWindowHint);
    	w.setAttribute(Qt::WA_TranslucentBackground);
    	w.show();
    	return a.exec();
    }
    


    Keep it simple!
    作者:N3verL4nd
    知识共享,欢迎转载。
  • 相关阅读:
    PageHelper 空指针异常
    ajax提交因参数超长导致接收参数为空问题解决
    Vue入门:Vue项目创建及启动
    Vue入门:Vue环境安装
    程序部署到服务器服务无法启动问题
    sqlServer区分大小写查询
    按下回车默认提交form表单问题
    MyEclipse常用快捷键
    基于JAX-WS的webService开发实例
    ie8下new Date()指定时间
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5834795.html
Copyright © 2011-2022 走看看