当前位置: 首页 > news >正文

网站开发难度衡阳网站优化外包价格

网站开发难度,衡阳网站优化外包价格,网页制作网站制作步骤,如何在建设银行网站预约纪念币1.效果图 2.实现原理 这里做了两个widget#xff0c;一个是 展示底图widget#xff0c;一个是 展示动画widget。 这两个widget需要重合。动画widget需要设置属性叠加到底图widget上面#xff0c;设置如下属性#xff1a; setWindowFlags(Qt::FramelessWindowHint | Qt::…1.效果图 2.实现原理 这里做了两个widget一个是 展示底图widget一个是 展示动画widget。 这两个widget需要重合。动画widget需要设置属性叠加到底图widget上面设置如下属性 setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow | Qt::WindowStaysOnTopHint); 动画widget背景需要做成透明我在上面放了一个QFrame然后设置style QFrame#frame {background-color: rgba(255, 255, 255, 100); } 动画widget上面放了一个QStackedWidget。一个用于显示 的图像另一个则显示菜单。 动画效果QPropertyAnimation类提供动画支持改变geometry属性。 m_slideOutAnimation new QPropertyAnimation(this,geometry);connect(m_slideOutAnimation,QPropertyAnimation::finished,this,SlideAnimationWidget::slotSlideOutFinished);m_slideOutAnimation-setEasingCurve(QEasingCurve::OutSine);m_slideOutAnimation-setDuration(1300);m_slideInAnimation new QPropertyAnimation(this,geometry);connect(m_slideInAnimation,QPropertyAnimation::finished,this,SlideAnimationWidget::slotSlideInFinished);m_slideInAnimation-setEasingCurve(QEasingCurve::InSine);m_slideInAnimation-setDuration(1300);最后安装事件过滤器通过鼠标进入和离开事件触发动画效果。 ui-label-installEventFilter(this);ui-controlWidget-installEventFilter(this); 3.源码 #ifndef SLIDEANIMATIONWIDGET_H #define SLIDEANIMATIONWIDGET_H#include QWidget #include QPropertyAnimation #include QEvent #include QRectnamespace Ui { class SlideAnimationWidget; }#define SLIDE_MIN_WIDTH 10 //侧边栏滑出最小的宽度 #define SLIDE_MAX_WIDTH 300 //侧边栏滑出最大的宽度class SlideAnimationWidget : public QWidget {Q_OBJECTpublic:explicit SlideAnimationWidget(QWidget *parent 0);~SlideAnimationWidget();public:void setPos(int x,int y);protected:bool eventFilter(QObject *obj, QEvent *event);private slots:void slotSlideOutFinished();void slotSlideInFinished();private:Ui::SlideAnimationWidget *ui;private:QPropertyAnimation *m_slideOutAnimation nullptr;QPropertyAnimation *m_slideInAnimation nullptr;bool m_bShowSideflag false; //显示侧边栏bool m_bInComboBox false;int m_posX 0;int m_posY 0;bool m_isInit false; };#endif // SLIDEANIMATIONWIDGET_H#include SlideAnimationWidget.h #include ui_SlideAnimationWidget.h #include QAbstractItemView #include QListView #include QMouseEventSlideAnimationWidget::SlideAnimationWidget(QWidget *parent) :QWidget(parent),ui(new Ui::SlideAnimationWidget) {ui-setupUi(this);setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow | Qt::WindowStaysOnTopHint);m_slideOutAnimation new QPropertyAnimation(this,geometry);connect(m_slideOutAnimation,QPropertyAnimation::finished,this,SlideAnimationWidget::slotSlideOutFinished);m_slideOutAnimation-setEasingCurve(QEasingCurve::OutSine);m_slideOutAnimation-setDuration(1300);m_slideInAnimation new QPropertyAnimation(this,geometry);connect(m_slideInAnimation,QPropertyAnimation::finished,this,SlideAnimationWidget::slotSlideInFinished);m_slideInAnimation-setEasingCurve(QEasingCurve::InSine);m_slideInAnimation-setDuration(1300);ui-stackedWidget-setCurrentIndex(0);ui-label-installEventFilter(this);ui-controlWidget-installEventFilter(this);ui-cbxFocusMode-view()-installEventFilter(this);ui-cbxField-view()-installEventFilter(this);ui-cbxFocusStep-view()-installEventFilter(this);this-setMaximumWidth(SLIDE_MIN_WIDTH);}SlideAnimationWidget::~SlideAnimationWidget() {delete ui; }void SlideAnimationWidget::setPos(int x, int y) {m_posX x;m_posY y;move(x,y); }bool SlideAnimationWidget::eventFilter(QObject *obj, QEvent *event) {if(obj ui-cbxFocusMode-view() ||obj ui-cbxField-view() ||obj ui-cbxFocusStep-view()){if (event-type() QEvent::FocusIn){m_bInComboBox true;}else if (event-type() QEvent::FocusOut){m_bInComboBox false;}}else if(obj ui-label){//鼠标进入的时候if (event-type() QEvent::Enter ui-stackedWidget-currentIndex() 0 !m_bShowSideflag){if(m_slideOutAnimation-state() QAbstractAnimation::Running)return true;//qDebug()Enter;this-setMaximumWidth(SLIDE_MAX_WIDTH);m_slideOutAnimation-setStartValue(QRect(m_posX,m_posY,SLIDE_MIN_WIDTH,this-height()));m_slideOutAnimation-setEndValue(QRect(m_posX,m_posY,SLIDE_MAX_WIDTH,this-height()));m_slideOutAnimation-start();ui-stackedWidget-setCurrentIndex(1);m_bShowSideflag true;return true;}return false;//别的事件会传给label对象}else if(obj ui-controlWidget){//鼠标离开的时候if (event-type() QEvent::Leave ui-stackedWidget-currentIndex() 1 m_bShowSideflag !m_bInComboBox){if(m_slideInAnimation-state() QAbstractAnimation::Running)return true;//qDebug()Leave;m_slideInAnimation-setStartValue(QRect(m_posX,m_posY,SLIDE_MAX_WIDTH,this-height()));m_slideInAnimation-setEndValue(QRect(m_posX,m_posY,SLIDE_MIN_WIDTH,this-height()));m_slideInAnimation-start();m_bShowSideflag false;return true;}return false;//别的事件会传给label对象}// standard event processingreturn QWidget::eventFilter(obj, event); }void SlideAnimationWidget::slotSlideOutFinished() {}void SlideAnimationWidget::slotSlideInFinished() {this-setMaximumWidth(SLIDE_MIN_WIDTH);ui-stackedWidget-setCurrentIndex(0); }使用新建一个MainWidget将m_animationWidget父对象设置为this。 做了一个void MainWidget::resizeEvent(QResizeEvent *event)事件根据MainWidget的尺寸自适应m_animationWidget的高度。 #include MainWidget.h #include ui_MainWidget.h #include SlideAnimationWidget.h #include QDebug#define POS_X 5 #define POS_Y 26MainWidget::MainWidget(QWidget *parent) :QWidget(parent),ui(new Ui::MainWidget) {ui-setupUi(this);m_animationWidget new SlideAnimationWidget(this);m_animationWidget-setPos(POS_X,POS_Y); }MainWidget::~MainWidget() {delete ui; }void MainWidget::resizeEvent(QResizeEvent *event) {m_animationWidget-setFixedHeight(event-size().height()-POS_Y*2); }void MainWidget::showEvent(QShowEvent *event) {Q_UNUSED(event);if(m_isInit)return;setWindowState(Qt::WindowFullScreen);showMaximized();m_isInit true; } 4.相关参考 Qt 事件过滤器秒懂_qt事件过滤器-CSDN博客 Qt 事件处理机制简介_qt获取事件的发起者_Mr.codeee的博客-CSDN博客  Qt 自定义悬浮窗带动画类似QQ拼音输入法_qt 浮动窗口设置悬浮-CSDN博客
http://www.pierceye.com/news/899945/

相关文章:

  • 做电子相册的网站省住房和城乡建设厅官方网站
  • 什么是自助网站网页设计与制作课件和素材
  • 如何为网站建设内容wordpress去水印插件
  • 办公家具网站模版制作手机软件网站
  • 诚信网站认证必需做吗网站建设mfdos
  • 廊坊网站建设哪家权威网址导航大全排名
  • 北京建站公司哪个好05网电子书
  • 权威网站设计wordpress通知站点360搜索
  • 做靓号网站凡客小程序
  • 创建网站开发公司公司做个网站
  • 做网站的工具+论坛html怎么自己做网站
  • 土木在线seo网站快速整站优化技术
  • 创造力网站设计建设有限公司网站
  • 如何做网站好看做h5小程序的网站
  • 济宁网站建设价格做网站公司深
  • ae成品免费下载网站申请一个app多少钱
  • 我想自己在网站上发文章 怎样做免费观看高清正能量直播下载
  • 做网站万网长春建站模板展示
  • 广州专业建网站公司福州网站制作
  • 西安烽盈网站建设郑州营销网站托管
  • 诸几建设银行网站怎么维护好网站
  • 深圳市国外网站建设简单html5网页设计
  • 网站制作公司西南城乡建设部网站首页
  • 网站名和域名能一样吗企业网站建设硬件
  • 德州做网站公司怎么开网店淘宝
  • 苏州做网站优化的电商定制开发
  • 广西庆海建设发展有限公司网站昆山有做网站的公司吗
  • 前端课程网站wordpress 微博登陆
  • asp怎么做网站适配开发公司安置房项目工程推进大会
  • 学做网站可以赚钱吗怎么批量修改wordpress文章内容