一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

  在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("background-color: 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("background-color: 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)来启用自动填充背景色。

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

posted on 2024-01-23 13:04  一杯清酒邀明月  阅读(711)  评论(0编辑  收藏  举报