Qt模拟全屏播放鼠标隐藏显示效果
2018-02-23 15:45
232 查看
.h文件
.cpp文件
#ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> #include <QMouseEvent> #include <QTimer> class MyWidget : public QWidget { Q_OBJECT public: MyWidget(QWidget *parent = 0); ~MyWidget(); protected: void paintEvent(QPaintEvent *event); void mouseMoveEvent(QMouseEvent *event); void resizeEvent(QResizeEvent *event); private: QWidget* dlg1; QWidget* dlg2; QTimer m_timer; public slots: void OnTimerOut(); }; #endif // MYWIDGET_H
.cpp文件
#include "MyWidget.h" #include <QPainter> #include <QGridLayout> #include <QHBoxLayout> #include <QImage> #include <QApplication> #include <QPushButton> MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { setStyleSheet("background-color:rgba(60, 60, 60);"); dlg1 = new QWidget(this); dlg1->setGeometry(0,0,this->rect().width(),40); dlg1->setStyleSheet("background-color:rgba(75, 75, 75,200);"); dlg2 = new QWidget(this); dlg2->setGeometry(0, this->rect().height() - 100, this->rect().width(), 100); dlg2->setStyleSheet("background-color:rgba(75, 75, 75,200); "); QHBoxLayout *lay = new QHBoxLayout(dlg2); QPushButton* btn = new QPushButton("pushbutton",dlg2); btn->setFixedSize(80, 30); QSpacerItem *spce1 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); QSpacerItem *spce2 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); lay->addSpacerItem(spce1); lay->addWidget(btn); lay->addSpacerItem(spce2); dlg2->setLayout(lay); this->setMouseTracking(true); //this->setWindowFlags(Qt::FramelessWindowHint); //用于隐藏鼠标 m_timer.setInterval(2000); connect(&m_timer, SIGNAL(timeout()), this, SLOT(OnTimerOut())); } MyWidget::~MyWidget() { } void MyWidget::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter p(this); p.setPen(Qt::NoPen); p.setBrush(Qt::white); p.drawRect(rect()); //QImage img("C:\\Users\\conglin\\Desktop\\7.png"); //p.drawImage((rect().width() - img.width())*0.5, (rect().height() - img.height())*0.5, img); //p.drawImage(rect(), img); } void MyWidget::OnTimerOut() { QApplication::setOverrideCursor(Qt::BlankCursor); } void MyWidget::mouseMoveEvent(QMouseEvent *event) { QApplication::setOverrideCursor(Qt::ArrowCursor); if (dlg1->geometry().contains(event->pos())) { dlg1->setVisible(true); m_timer.stop(); } else { dlg1->setVisible(false); if (!m_timer.isActive() && !dlg2->isVisible()) { m_timer.start(); } } if (dlg2->geometry().contains(event->pos())) { dlg2->setVisible(true); m_timer.stop(); } else { dlg2->setVisible(false); if (!m_timer.isActive() && !dlg1->isVisible()) { m_timer.start(); } } } void MyWidget::resizeEvent(QResizeEvent *event) { dlg1->setGeometry(0, 0, this->rect().width(), 40); dlg2->setGeometry(0, this->rect().height()-100, this->rect().width(), 100); }
相关文章推荐
- JQ实现效果:点击(or鼠标滑过)连接时显示内容,再点击(鼠标滑出)连接时隐藏内容
- jQuery实现网易相册鼠标移动显示隐藏效果
- C#开发微信 二维码鼠标滑动 图像显示隐藏效果(推荐)
- C#开发微信 二维码鼠标滑动 图像显示隐藏效果(推荐)
- js鼠标滑动图片显示隐藏效果
- AngularJS如何实现鼠标移入显示,鼠标移出隐藏的效果
- jquery animate实现鼠标放上去显示离开隐藏效果
- css效果,在一个盒子里,把一部分内容隐藏掉,在鼠标悬停到div时,就会把隐藏的部分向上显示出来。 不用js操作,纯css就可以。
- 自己实现axure中鼠标移入时隐藏显示的弹出效果,并且实现智能管控隐藏效果,改良弹出效果
- css实现 鼠标移上放大效果 或 显示隐藏内容 简单原型
- 鼠标在导航栏移入移出的隐藏显示效果jquery
- js 鼠标经过显示隐藏效果实例
- headroom.js 用例,漂亮完善的 鼠标滚动 --->导航栏隐藏显示效果
- 鼠标放上去显示/隐藏效果
- CSS实现DIV感应鼠标Hover时的显示隐藏效果
- 鼠标放上去显示全部文字,不放上去,显示部分文字jquery效果,包括隐藏部分文字
- 简单的JS幻灯片效果(播放图片) and Tab卡显示、展开、隐藏效果
- 鼠标划过显示鼠标移出隐藏效果
- 使用JAVASCRIPT进行全屏显示页面,就像触摸屏显示效果