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

转载于:https://www.cnblogs.com/bclshuai/p/9791387.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值