1.运行效果

实现功能:

1.可拖动。

2.可显示,可隐藏 。

3.悬浮在主界面上面。

4.目前只是一个简单的界面,什么功能都没有。

2.ui界面

3.源码

//FloatingWindow.h

#ifndef FLOATINGWINDOW_H

#define FLOATINGWINDOW_H

#include

#include

#include

namespace Ui {

class FloatingWindow;

}

class FloatingWindow : public QWidget

{

Q_OBJECT

public:

explicit FloatingWindow(QWidget *parent = 0);

~FloatingWindow();

private:

Ui::FloatingWindow *ui;

protected:

//事件过滤

bool eventFilter(QObject *watched, QEvent *event);

private:

QPropertyAnimation *m_pAnimation;

bool m_bDragFlag;

QPoint m_pointDrag;

};

#endif // FLOATINGWINDOW_H

//FloatingWindow.cpp

#include "FloatingWindow.h"

#include "ui_FloatingWindow.h"

#include

FloatingWindow::FloatingWindow(QWidget *parent) :

QWidget(parent),

ui(new Ui::FloatingWindow),

m_pAnimation(nullptr),

m_bDragFlag(false)

{

ui->setupUi(this);

setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow | Qt::WindowStaysOnTopHint);

ui->btnQQ->installEventFilter(this);

ui->widget->installEventFilter(this);

ui->widget->hide();

setAutoFillBackground(false);

setAttribute(Qt::WA_TranslucentBackground);

ui->frame->setStyleSheet("background:transparent;");

}

FloatingWindow::~FloatingWindow()

{

delete ui;

}

bool FloatingWindow::eventFilter(QObject *target, QEvent *event)

{

QMouseEvent *mouse = dynamic_cast(event);

if (target == ui->btnQQ)

{

if (event->type() == QEvent::Enter)

{

ui->widget->show();

}

if (event->type() == QEvent::Leave)

{

ui->widget->hide();

}

}

//拖动

if (mouse)

{

if (mouse->button() == Qt::LeftButton && mouse->type() == QEvent::MouseButtonPress)

{

m_bDragFlag = true;

if (target == ui->btnQQ)

{

m_pointDrag = ui->frame->mapToParent(ui->btnQQ->mapToParent(mouse->pos()));

ui->widget->hide();

}

}

else if (mouse->type() == QEvent::MouseButtonRelease)

{

m_bDragFlag = false;

}

else if (m_bDragFlag && mouse->type() == QEvent::MouseMove)

{

this->move(mouse->globalPos() - m_pointDrag);

}

}

return QWidget::eventFilter(target, event);

}

4.完整代码

qt android 悬浮窗,Qt 自定义悬浮窗(类似QQ拼音输入法)相关推荐

  1. Qt 自定义悬浮窗(带动画,类似QQ拼音输入法)

    1.运行效果 实现功能: 1.可拖动. 2.可显示,可隐藏 . 3.悬浮在主界面上面. 4.带动画. 2.ui界面  3.源码 //FloatingWindow.h #pragma once#incl ...

  2. qt android png透明,QT透明的经验汇编

    最近在美化QT,一直对纯代码编写和美化界面能力拙急.网上搜了很多很多资料,但由于那个庞大的工程还没完成,先将网上的资料整理一下,有一些没用到的,留着以后看.等我的界面美化完之后再po上来~/***** ...

  3. qt android oci数据库,QT mysql SQLite 数据库支持

    qt-opensource-linux-x64-5.14.1.run安装的qt可能只支持有限的几种数据库,缺少mysql的支持,按照下文操作添加mysql数据的支持. 操作 sudo apt-get ...

  4. qt android meta data,Qt小技巧5.解决Failed to extract plugin meta data问题

    使用Qt插件开发时,在debug模式下加载插件时遇到如下问题: "Failed to extract plugin meta data from './ICE-PCPUd. dll'&quo ...

  5. qt android glsl,基于Qt的OpenGL学习(1)—— Hello Triangle

    简介 要学习OpenGL的话,强烈安利这个教程JoeyDeVries的learnopengl,这里是中文翻译好的版本.教程中使用OpenGL是通过GLFW这个库,而在Qt中对OpenGL封装得很好,并 ...

  6. qt android 浮动窗口,QT+ 状态栏+核心控件+浮动窗口

    #include "mainwindow.h" #include #include #include #include //浮动窗口所需的头文件 MainWindow::MainW ...

  7. qt android png透明,Qt处理照片实现白色背景转透明

    这两天在看<Qt5 Cadaques>,书是开源的,代码里用到的图片却不是.想照着书中的示例练一练,就自己找了几张图片.需要一个飞船,找了下面这张图片,但是需要处理成背景透明的png图片. ...

  8. qt android 中文乱码,Qt与MSVC中文乱码问题的解决方案

    Qt与MSVC中文乱码问题的解决方案 一.问题是什么? 在学习Qt编程的过程中,大多数人都遇到过中文乱码的问题.总结起来有三类: 1.Qt Creator中显示的汉字变为乱码,编辑器上方有" ...

  9. qt Android 按键事件,QT无窗口状态下对键盘事件的监听

    Question:最近在搞linux下的一个客户端项目,需要接收键盘事件,但是又不能有界面,这种情况怎么处理呢? int main(int argc, char *argv[]) { QApplica ...

最新文章

  1. 云南昆明:看猪展迎猪年
  2. golang slice 切片 追加、删除、插入
  3. python 双向链表_python算法与数据结构-双向链表(40)
  4. 【KMP】子串拆分(ybtoj KMP-4)
  5. 头发剪短了要快速生发_怎样生发效果最好最快?四个方法快速长出头发!
  6. Springboot03整合SpringDataJPA访问MySQL数据库
  7. win10家庭版远程桌面_win10 家庭版使用RDPWrap开通远程桌面服务
  8. 12、常见Conditional注解源码解析-ConditionalOnBean(写作中...)
  9. Redis中的数据结构与常用命令
  10. 网络安全设备Bypass功能
  11. 考研--线性代数辅导讲义(第一章行列式 第二章矩阵)
  12. PearOS官网下载\梨子系统
  13. frp frpc,frps开机自动运行 ubuntu
  14. 15家银行信用卡积分含金量大比拼
  15. Azkban上传文件报错installation Failed.Error chunking
  16. 自动驾驶仿真测试标准ASAM OpenX简介
  17. 拉依达准则剔除数据异常
  18. 数据库--视图的基本概念以及作用
  19. 超赞的卡尔曼滤波详解文章
  20. delist(滴滴delist)

热门文章

  1. vs2015编译程序遇到writefile崩溃出现异常代码:c0000005,解决办法。
  2. Moleskine笔记本使用之感受【个人管理篇】
  3. 研发效能度量实践者指南(万字长文)
  4. 江苏电信服务器托管/1U托管/4G硬防
  5. 干货!基于神经网络的多粒度图表征学习
  6. (PAT)BasiclLevel_c++ #1003 我要通过!(演绎法)
  7. 走对路!在智能时代别捡了芝麻丢了西瓜!
  8. Creator2D横版游戏(2)背景图随主角移动 | 单独相机拍UI
  9. java 电子围栏_怎么画电子围栏,并进行电子围栏进出判断?
  10. 怎么判断冠词用a还是an_不定冠词a和an有哪些用法