在 Qt 中,设置 QWidget 的样式表和边框,同时不影响子控件内容,可以使用以下方法:

  1. 使用 setStyleSheet() 方法设置样式表。可以在子类化的 QWidget 的构造函数中调用 setStyleSheet() 方法来设置样式表,例如:
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
    setStyleSheet('QWidget { background-color: red; border: 1px solid black; }');
}

这将设置该 QWidget 的背景颜色为红色,边框为 1 像素的黑色实线边框。

  1. 重写 paintEvent() 方法绘制自定义的边框。可以在子类化的 QWidget 中重写 paintEvent() 方法来绘制自定义的边框,例如:
void MyWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setPen(QPen(Qt::black, 1));
    painter.drawRect(rect());
}

这将绘制一个 1 像素的黑色边框。

请注意,使用样式表设置的边框可能会影响子控件。如果希望边框只应用于 QWidget 本身而不影响子控件,则应使用重写 paintEvent() 方法绘制自定义的边框。

Qt 子类化 QWidget 设置样式表和边框而不影响子控件

原文地址: https://www.cveoy.top/t/topic/qvgt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录