Qt 设置horizontal line 和vertical line的颜色


  在Qt中,要设置水平线(QFrame)和垂直线(QSplitter)的颜色,可以使用样式表(stylesheet)或者直接设置QPalette。
下面是两种设置的示例:

1.使用样式表(stylesheet)设置颜色:

1 QFrame* horizontalLine = new QFrame(this); 2 horizontalLine>move(20, 20); 3 horizontalLine>setFixedHeight(1); 4 horizontalLine>setFrameShape(QFrame::HLine); 5 horizontalLine>setStyleSheet("backgroundcolor: red;"); // 设置水平线颜色为红色 6 7 8 QSplitter* verticalLine = new QSplitter(Qt::Vertical, this); 9 verticalLine>move(10,20); 10 verticalLine>setFixedWidth(1); 11 verticalLine>setLineWidth(1); 12 verticalLine>setStyleSheet("backgroundcolor: blue;"); // 设置垂直线颜色为蓝色

使用样式表的优点在于可以更加灵活地设置样式,比如颜色、背景图像等。

2.使用QPalette设置颜色:

1 QFrame* horizontalLine = new QFrame(); 2 horizontalLine>move(20, 20); 3 horizontalLine>setFixedHeight(1); 4 horizontalLine>setFrameShape(QFrame::HLine); 5 QPalette pal = palette(); 6 pal.setColor(QPalette::Background, Qt::red); 7 horizontalLine>setAutoFillBackground(true); 8 horizontalLine>setPalette(pal); // 设置水平线颜色为红色 9 10 QSplitter* verticalLine = QSplitter(Qt::Vertical); 11 verticalLine>move(10,20); 12 verticalLine>setFixedWidth(1); 13 verticalLine>setLineWidth(1); 14 QPalette pal = palette(); 15 pal.setColor(QPalette::Background, Qt::blue); 16 verticalLine>setAutoFillBackground(true); 17 verticalLine>setPalette(pal); // 设置垂直线颜色为蓝色

效果:

使用QPalette设置颜色时,需要设置QFrame和QSplitter的背景色(QPalette::Background)为所需的颜色。

通过设置setAutoFillBackground(true)来启用自动填充背景色。

这两种方法都可以用来设置水平线和垂直线的颜色,可以选择适合自己的方法来设置。



上一篇:Visual Studio 有未经处理的异常: 0xC00000FD: Stack overflow 问题解决

下一篇:Qt cannot initialize object parameter of type ‘QWidget‘ with an expression of type ‘QMainwindow‘


Qt
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图