Qt QPainter: 在 paintEvent 方法中绘制 QDialog 背景和边框
在 paintEvent 方法中绘制 QDialog 的背景颜色和边框效果,可以使用 QPainter 来完成。以下是一个示例代码,展示了如何在 paintEvent 方法中绘制指定的背景颜色和边框样式:
void CallReminderDialog::paintEvent(QPaintEvent *event)
{
// 调用基类的 paintEvent 方法
QDialog::paintEvent(event);
// 创建 QPainter 对象,并传入当前对话框作为绘制设备
QPainter painter(this);
// 设置背景颜色
painter.setBrush(QColor(20, 25, 29));
// 设置边框样式
painter.setPen(QPen(Qt::white));
painter.setRenderHint(QPainter::Antialiasing, true);
// 绘制圆角矩形
int borderRadius = 20;
int borderWidth = 2;
int x = borderWidth / 2;
int y = borderWidth / 2;
int width = this->width() - borderWidth;
int height = this->height() - borderWidth;
painter.drawRoundedRect(x, y, width, height, borderRadius, borderRadius);
}
请注意,上述示例代码是使用 C++ 编写的,如果您想在 Python 中实现相同的效果,可以使用 PyQt 库进行相应的转换。
原文地址: https://www.cveoy.top/t/topic/p96w 著作权归作者所有。请勿转载和采集!