Qt 子类化 QWidget 设置样式表和边框而不影响子控件
在 Qt 中,设置 QWidget 的样式表和边框,同时不影响子控件内容,可以使用以下方法:
- 使用
setStyleSheet()方法设置样式表。可以在子类化的 QWidget 的构造函数中调用setStyleSheet()方法来设置样式表,例如:
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
setStyleSheet('QWidget { background-color: red; border: 1px solid black; }');
}
这将设置该 QWidget 的背景颜色为红色,边框为 1 像素的黑色实线边框。
- 重写
paintEvent()方法绘制自定义的边框。可以在子类化的 QWidget 中重写paintEvent()方法来绘制自定义的边框,例如:
void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setPen(QPen(Qt::black, 1));
painter.drawRect(rect());
}
这将绘制一个 1 像素的黑色边框。
请注意,使用样式表设置的边框可能会影响子控件。如果希望边框只应用于 QWidget 本身而不影响子控件,则应使用重写 paintEvent() 方法绘制自定义的边框。
原文地址: https://www.cveoy.top/t/topic/qvgt 著作权归作者所有。请勿转载和采集!