我们在使用Qt时,会发现在使用UI界面时可以添加窗口分隔条,但我们使用纯代码时却没有分隔条的类函数。这时候我们就需要手动添加,添加方式和Qt自定义标签按钮一样,下面我直接写代码。如果不知道怎么添加的,请先转到Qt自定义标签按钮。
splitLine.h文件:
#ifndef SPLITLINE_H
#define SPLITLINE_H #include <QFrame> class SplitLine : public QFrame
{
Q_OBJECT
public:
SplitLine(QWidget *parent = );
QFrame *frame;
public slots:
int setHorizontalVertical( int i= );//i=0时是水平分割线,i=1时是垂直分割线,默认为水平分割
void setSizeRect( int x=, int y=, int w=, int h=);
}; #endif // SPLITLINE_H
splitLine.cpp文件:
#include "splitline.h" SplitLine::SplitLine(QWidget *parent) : QFrame(parent)
{
frame = new QFrame(this);
setHorizontalVertical(); //默认为水平分割
} int SplitLine::setHorizontalVertical(int i) //i=0时是水平分割线,i=1时是垂直分割线,默认为水平分割,已设置有默认尺寸
{
if(i==)
{
frame->setFrameShape(QFrame::HLine); // 水平分割线
frame->setFrameShadow(QFrame::Sunken);
setSizeRect(,,,); //设置默认尺寸
}
if(i==)
{
frame->setFrameShape(QFrame::VLine); // 垂直分割线
frame->setFrameShadow(QFrame::Sunken);
setSizeRect(,,,);
}
else
{
frame->setFrameShape(QFrame::HLine);
frame->setFrameShadow(QFrame::Sunken);
setSizeRect(,,,);
}
return i;
} void SplitLine::setSizeRect( int x, int y, int w, int h)
{
frame-> setGeometry(QRect(x,y,w,h));
}
之后在Qt工程中调用即可。需要注意的是如果需要设置分割线的尺寸和布局方向,请先设置布局方向,否则分割线的尺寸是默认尺寸