Qt代碼創建分隔條

我們在使用Qt時,會發現在使用UI界面時可以添加窗口分隔條,但我們使用純代碼時卻沒有分隔條的類函數。這時候我們就需要手動添加,添加方式和Qt自定義標籤按鈕一樣,下面我直接寫代碼。如果不知道怎麼添加的,請先轉到Qt自定義標籤按鈕

splitLine.h文件:

 1 #ifndef SPLITLINE_H
 2 #define SPLITLINE_H
 3 
 4 #include <QFrame>
 5 
 6 class SplitLine : public QFrame
 7 {
 8     Q_OBJECT
 9 public:
10     SplitLine(QWidget *parent = 0);
11     QFrame *frame;
12 public slots:
13     int setHorizontalVertical( int i=0 );//i=0時是水平分割線,i=1時是垂直分割線,默認爲水平分割
14     void setSizeRect( int x=0, int y=0, int w=100, int h=30);
15 };
16 
17 #endif // SPLITLINE_H

splitLine.cpp文件:

 1 #include "splitline.h"
 2 
 3 SplitLine::SplitLine(QWidget *parent) : QFrame(parent)
 4 {
 5     frame = new QFrame(this);
 6     setHorizontalVertical(0);           //默認爲水平分割
 7 }
 8 
 9 int SplitLine::setHorizontalVertical(int i) //i=0時是水平分割線,i=1時是垂直分割線,默認爲水平分割,已設置有默認尺寸
10 {
11     if(i==0)
12     {
13         frame->setFrameShape(QFrame::HLine);        // 水平分割線
14         frame->setFrameShadow(QFrame::Sunken);
15         setSizeRect(30,30,100,20);                              //設置默認尺寸
16     }
17     if(i==1)
18     {
19         frame->setFrameShape(QFrame::VLine);        // 垂直分割線
20         frame->setFrameShadow(QFrame::Sunken);
21         setSizeRect(30,30,20,100);
22     }
23     else
24     {
25         frame->setFrameShape(QFrame::HLine);
26         frame->setFrameShadow(QFrame::Sunken);
27         setSizeRect(30,30,100,20);
28     }
29     return i;
30 }
31 
32 void SplitLine::setSizeRect( int x, int y, int w, int h)
33 {
34    frame-> setGeometry(QRect(x,y,w,h));
35 }

之後在Qt工程中調用即可。需要注意的是如果需要設置分割線的尺寸和佈局方向,請先設置佈局方向,否則分割線的尺寸是默認尺寸。

(本文只出現在Aili_Xiao的博客中,目前在博客園和CDSN中)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章