QT透明显示文字
2024-08-28 05:29:13
实现效果:
代码:
#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();
}
最新文章
- linux系统性能调优第一步——性能分析(vmstat)
- bat 自动编译运行
- 武汉科技大学ACM:1006: 我是老大
- Eclipse常用热键
- NSIS:安装、卸载时检查程序是否正在运行
- zend framework 配置连接数据库
- 关于php网络爬虫phpspider。
- Web in Linux小笔记001
- linux 记录用户操作日志
- 在servlet中使用spring注解
- ceph 底层代码分享
- git-02 下载代码
- AngularJS中移动页面滚动穿透解决方案
- 如何通过sql的insert语句插入大量字符串到oracle的clob字段?
- [nginx]location语法
- java编写编译器和解释器
- array_uintersect、array_uintersect_assoc、array_uintersect_uassoc 的使用方法
- 算法笔记_012:埃拉托色尼筛选法(Java)
- HQL的第一个程序
- laravel-ide-helper 遇到There are no commands defined问题怎么解决