实现效果:

代码:

#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();
}

最新文章

  1. linux系统性能调优第一步——性能分析(vmstat)
  2. bat 自动编译运行
  3. 武汉科技大学ACM:1006: 我是老大
  4. Eclipse常用热键
  5. NSIS:安装、卸载时检查程序是否正在运行
  6. zend framework 配置连接数据库
  7. 关于php网络爬虫phpspider。
  8. Web in Linux小笔记001
  9. linux 记录用户操作日志
  10. 在servlet中使用spring注解
  11. ceph 底层代码分享
  12. git-02 下载代码
  13. AngularJS中移动页面滚动穿透解决方案
  14. 如何通过sql的insert语句插入大量字符串到oracle的clob字段?
  15. [nginx]location语法
  16. java编写编译器和解释器
  17. array_uintersect、array_uintersect_assoc、array_uintersect_uassoc 的使用方法
  18. 算法笔记_012:埃拉托色尼筛选法(Java)
  19. HQL的第一个程序
  20. laravel-ide-helper 遇到There are no commands defined问题怎么解决

热门文章

  1. UI自动化和selenium相关以及八大定位
  2. Linux学习之路--常用命令讲解
  3. list绑定
  4. C#反射与特性(七):自定义特性以及应用
  5. Go语言教程之结构体
  6. 原生javascript 元素依次掉落及上升
  7. C++Primer第五版 3.5.1节练习
  8. 配置IDEA默认作者@author
  9. JSON的学习与使用
  10. DP- 01背包问题