QT January 14, 2020

【QT】动态添加 Horizontal Line 和 Vertical Line

Words count 1.1k Reading time 1 mins. Read count 0

前言

根据业务的需求,有时我们需要用到一条水平分割线或者一条垂直分割线,在Designer里边,我们可以直接拖动一个Horizontal Line/Vertical Line来实现需求。但假如需要动态添加呢?在QT Assistant里边查找QLine/Line,发现并没有满足该需求的控件。但在qss中配置分割线的样式时,发现选择器使用的是QFrame,于是去翻查QFrame的属性等,发现QFrame有个Shape的概念,里边就有两个枚举:HLine和VLine。这就是我们实现的方法

步骤

  1. 创建一个QFrame
  2. 调用setFrameShape方法设置形状
  3. 通过setStyleSheet设置样式

具体代码

1
2
3
4
QFrame *m_frameLine = new QFrame;
m_frameLine->setFrameShape(QFrame::HLine);
m_frameLine->setFixedSize(QSize(360, 1));
m_frameLine->setStyleSheet("color:rgba(170,170,170,1);");
0%