Qt工作笔记-Windows上界面滑动效果
生活随笔
收集整理的這篇文章主要介紹了
Qt工作笔记-Windows上界面滑动效果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
運行截圖如下:
源碼如下:
widget.h
#ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE class QMouseEvent; class QPropertyAnimation; QT_END_NAMESPACEnamespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected:void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;void showWidget();void hideWidget();private:Ui::Widget *ui;QPropertyAnimation *m_showAnimation;bool m_isAnimation;bool m_isShow; };#endif // WIDGET_Hmain.cpp
#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }widget.cpp
#include "widget.h" #include "ui_widget.h" #include <QMouseEvent> #include <QPropertyAnimation> #include <QMetaProperty> #include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);ui->leftWidget->setMaximumWidth(0);setMouseTracking(true);this->setWindowTitle("CSDN IT1995");m_showAnimation = new QPropertyAnimation(ui->leftWidget, "minimumWidth");m_isAnimation = false;m_isShow = false; }Widget::~Widget() {delete ui; }void Widget::mouseMoveEvent(QMouseEvent *event) {if(m_isAnimation)return;qDebug()<< event->pos();if(event->pos().x() < 100 && !m_isShow){m_isShow = true;m_isAnimation = true;qDebug()<< "show";showWidget();}else if(event->pos().x() > 100 && m_isShow){m_isAnimation = true;qDebug()<< "hide";hideWidget();m_isShow = false;}m_isAnimation = false; }void Widget::showWidget() {m_showAnimation->setDuration(1000);m_showAnimation->setStartValue(0);m_showAnimation->setEndValue(100);m_showAnimation->start(); }void Widget::hideWidget() {m_showAnimation->setDuration(1000);m_showAnimation->setStartValue(100);m_showAnimation->setEndValue(0);m_showAnimation->start(); }?
總結
以上是生活随笔為你收集整理的Qt工作笔记-Windows上界面滑动效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt文件编码转换工具(二) C++判断文
- 下一篇: Linux学习笔记-用vc编写Liunx