Qt 子类化的QWidget如何设置样式表和边框并且不影响子控件
要设置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/iO9P 著作权归作者所有。请勿转载和采集!