QT:图片作为窗口

时间:2011-04-02 20:33:14

标签: c++ qt coding-style background window

我想用一些图片制作窗框。窗口不应该有边框,标题栏等。它也应该从活动窗口列表中隐藏(在任务栏中)。

我做过的第二部分问题:

this->setAttribute(Qt::WA_NoSystemBackground);
this->setAttribute(Qt::WA_QuitOnClose);

this->setAutoFillBackground(true);

this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);

用于继承QMainWindow的新类。例如,它隐藏在gnome任务栏中,但是在Awn(awant windows navigator)中,我将它放在活动窗口列表中:(。

第一部分怎么样?前段时间我使用QRegion, QPixmap并在重载paintEvent中使用了掩码。我丢失了代码。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

关于问题的第一部分,你可能正在寻找像这样的人:

void MainWindow::paintEvent(QPaintEvent * event)
{
    QPainter painter(this);

    QPixmap pixmap = QPixmap();
    pixmap.load("/home/my_image.jpg");

    painter.drawPixmap(event->rect(), pixmap);
}

作为替代方案,你可以创建一个label并在主窗口上显示它,就像这样:

QLabel* label = new QLabel(this); // where 'this' is your window 
label->setGeometry(this->geometry());

QPixmap pixmap = QPixmap();
pixmap.load("/home/my_image.jpg");

label->setPixmap(pixmap.scaled(label->size(), Qt::KeepAspectRatio));

希望这有帮助,尊重