qt实现桌面弹幕
来源:互联网 发布:软件项目培训 编辑:程序博客网 时间:2024/05/02 02:06
新手上路第一次写点东西
就当笔记来看看
qt是一个跨平台C++图形用户界面应用程序开发框架,应用软件的图形拿qt来做是效率很快的,今天来实现一下桌面弹幕
首先完成一个弹幕类,共有继承于QLabel
class barrage : public QLabel
{
Q_OBJECT
public:
explicit barrage(QString str, QWidget *parent = 0);
private:
QPropertyAnimation *animation;//动画效果
~barrage();
int duration;//周期
int pix;//字体大小
};
弹幕的构造函数里面对弹幕路线.运动时间,字体大小进行初始化
barrage::barrage(QString str, QWidget *parent):
QLabel(parent)
{
int hlevel;
int height=20;
int width=str.size()*height;
int desktop_high = QApplication::desktop()->height();
hlevel=desktop_high/10*(qrand()%10);
this->setText(str);
this->setAlignment(Qt::AlignCenter);//居中
this->resize(width,height);
animation=new QPropertyAnimation(this,"geometry",this);
animation->setDuration(10000);
animation->setKeyValueAt(0, QRect(1920,hlevel , width, height));
animation->setKeyValueAt(1, QRect(0-width, hlevel, width, height));
animation->start();
QFont font;
font.setPixelSize(height);
this->setFont(font);
}
接着写了一个MainScreen类 继承与QMainWindow作为主窗口,里面放了1000个弹幕类,
class MainScreen : public QMainWindow
{
Q_OBJECT
public:
explicit MainScreen(QWidget *parent = 0);
private:
barrage *barage[1000];
QPushButton *button;
QLineEdit *edit;
int barnum;//弹幕数量
signals:
public slots:
void SendBar();//发射弹幕的槽
};
在构造函数里面里面先将背景透明
//桌面透明
setAutoFillBackground(false); //这个不设置的话就背景变黑
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground,true);按钮和编辑框的通过setGeometry(int,int,int,int)来设置大小和位置
//获取桌面大小
int desktop_width = QApplication::desktop()->width();
int desktop_high = QApplication::desktop()->height();
this->resize (desktop_width, desktop_high);
button =new QPushButton("发送弹幕",this);
button->setGeometry(800,800,100,20);
edit=new QLineEdit(this);
edit->setGeometry(920,800,100,20);
最后将按钮和自己写的槽函数连接起来 实现点击按钮发射弹幕(实例化一个barrage)
最后实现效果如图
阅读全文
0 0
- qt实现桌面弹幕
- 来用Qt实现一个桌面弹幕程序吧
- 用Qt实现一个桌面弹幕程序(一)--前期准备
- 用Qt实现一个桌面弹幕程序(二)--实现一个弹幕①
- 用Qt实现一个桌面弹幕程序(三)--实现一个弹幕②
- 用Qt实现一个桌面弹幕程序(四)--实现一个弹幕③
- 用Qt实现一个桌面弹幕程序(五)-- -- 桌面客户端实现①
- 用Qt实现一个桌面弹幕程序(六)-- -- 桌面客户端实现②
- 用Qt实现一个桌面弹幕程序(七)-- -- 桌面客户端实现③
- 用Qt实现一个桌面弹幕程序(八)-- -- 桌面客户端实现④
- 用Qt实现一个桌面弹幕程序(九)-- -- 服务端的实现
- 用Qt实现一个桌面弹幕程序(十)-- -- 网页服务端的实现①
- 弹幕实现
- 弹幕实现
- Qt 实现桌面雪花飘落
- Qt实现360桌面精灵
- Qt实现桌面截屏
- Qt实现嵌入桌面的半透明窗口
- Dagger2 什么鬼 ?
- Viewpager+fragment实现底部导航栏
- iOS GPUImage 滤镜介绍
- 51nod 1087 1 10 100 1000
- codility MaxProfit
- qt实现桌面弹幕
- js循环输出不同样式和id的HTML标签
- nginx重写url隐藏index.php
- php中常见的系统函数
- HttpClient应用案例post&get方法
- TF-IDF算法和textrank算法的分析比较
- Scala扩大内部类作用域的2种方法、内部类获取外部类引用
- 挑战程序竞赛系列(43):4.1矩阵 高斯消元
- vim中如何将一个文件的内容拷贝到另一个文件中