zoukankan      html  css  js  c++  java
  • QSplitter实现滑动窗口和悬浮按钮

    1         QSplitter实现滑动窗口和悬浮按钮

    软件应用中需要设计右侧滑动窗口,通过一个按钮来实现窗口的隐藏和显示,应用场景比如显示主界面的详细信息。

    (1)   在qt design中添加QSplitter,添加主窗口界面和右侧滑动窗口界面。

    (2)   在程序中添加浮动按钮,并在初始化中设置按钮的属性

    m_btnFold.setParent(this);

                  m_btnFold.setFocusPolicy(Qt::NoFocus);

                  m_btnFold.setFixedSize(16, 78);//设置大小

                  m_btnFold.setIconSize(m_btnFold.size());

                  m_btnFold.move(this->width() - m_btnFold.width(), (this->height() - m_btnFold.height()) / 2);//设置移动位置

                  m_btnFold.setStyleSheet("border:0px;border-style:outset;");//设置无边框

                  m_btnFold.setFlat(true);//设置扁平按钮

                  m_btnFold.setVisible(true);//设置可见

                m_btnFold.setStyleSheet("background:url(:/qss/image/unfoldbtn.png);border: 0px;");//设置背景图片,图片需先加入工程资源中

                  m_btnFold.show();

                  m_btnFold.setToolTip("展开详情");

    (3)   添加按钮的响应函数

    connect(&m_btnFold, SIGNAL(clicked()), this, SLOT(DisplayFoldWidget()));

    void SpliterWidget::DisplayFoldWidget()

    {

           if (m_bfoldOpen == false)

           {

                  m_btnFold.setToolTip("收起详情");

                 

                  m_bfoldOpen = true;

                  ui.alarmDetailWidget->setVisible(true);//展示右侧滑动窗口

                  m_btnFold.move(this->width()-ui.alarmDetailWidget->width() - m_btnFold.width(), (this->height() - m_btnFold.height()) / 2);

                  m_btnFold.setStyleSheet("background:url(:/qss/image/foldbtn.png);border: 0px;");//重新移动按钮位置

           }

           else if (m_bfoldOpen == true)

           {

                  m_btnFold.setToolTip("展开详情");

                  m_bfoldOpen = false;

                  ui.alarmDetailWidget->setVisible(false);//右侧滑动窗口

                  m_btnFold.move(this->width() - m_btnFold.width(), (this->height() - m_btnFold.height()) / 2);

                  m_btnFold.setStyleSheet("background:url(:/qss/image/unfoldbtn.png);border: 0px;");//改变按钮图标方向

           }

    }

    (4)   窗口放大缩小的时候还要重新确定按钮的位置,所以要重写大小改变函数。

    void resizeEvent(QResizeEvent* size);

    void SpliterWidget::resizeEvent(QResizeEvent* size)

    {

           int winwidth= ui.alarmCenter->window()->width();

           QList<int> spliteList;

           spliteList.append(winwidth - 320);

           spliteList.append(320);//右侧固定大小为320

           ui.splitterLR->setSizes(spliteList);

           m_btnFold.setVisible(true);

           m_btnFold.show();

           if (m_bfoldOpen==true)//移动按钮位置

           {

                  m_btnFold.move(this->width()-ui.alarmDetailWidget->width()-m_btnFold.width() , (this->height() - m_btnFold.height()) / 2);

           }

           else

           {

                  m_btnFold.move(this->width() - m_btnFold.width(), (this->height() - m_btnFold.height()) / 2);

           }

    }

    自己编了一个股票监控软件,有如下功能,有兴趣的朋友可以下载;

    (1)   个股监测。监测个股实时变化,可以监测个股大单交易、急速拉升和下降、主力入场和出场、股票最高点和最低点提醒。检测到最高点、最低点、主力进场点、主力退场点、急速拉升点、急速下跌点,给出语音或者声音提醒,不用再时刻看着大盘了,给你更多自由的时间;

    (2)   大盘监测。监测大盘的走势,采用上证、深证、创业三大指数的综合指数作为大盘走势。并实时监测大盘的最高点和最低点、中间的转折点。

    (3)   股票推荐。还能根据历史数据长期或短期走势进行分析,对股市3千多个股票进行分析对比,选出涨势良好的股票,按照增长速度从大到小排序,推荐给你涨势良好的股票;

    下载地址:

    1.0.3版本(修复大盘指数崩溃缺陷)下载地址:

    链接:https://pan.baidu.com/s/1BJcTp-kdniM7VE9K5Kd3vg 提取码:003h

    更新链接:

    https://www.cnblogs.com/bclshuai/p/10621613.html

  • 相关阅读:
    python第八课
    python第七课
    python第六课
    python第五课
    Python基础30类-内置函数实现迭代器协议
    Python基础29类-内置函数(__format__,__slots__,__doc__,__module__,__del__,__call__)
    Python基础28类-内置函数(__getattribute__,__getitem__,__setitem__.__delittem__)
    Python基础27类-包装、组合方式授权、判断对象类型的方法
    Python基础26类-内置函数__setattr__,__getattr__,__delattr__
    Python基础25类-反射
  • 原文地址:https://www.cnblogs.com/bclshuai/p/9791387.html
Copyright © 2011-2022 走看看