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

依然范特西╮ 提交于 2020-02-17 12:39:51

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!