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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM