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 库进行相应的转换。

Qt QPainter: 在 paintEvent 方法中绘制 QDialog 背景和边框

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

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