我想用一些图片制作窗框。窗口不应该有边框、标题栏等。它也应该从事件窗口列表(在任务栏中)中隐藏。
我做的问题的第二部分:
this->setAttribute(Qt::WA_NoSystemBackground);
this->setAttribute(Qt::WA_QuitOnClose);
this->setAutoFillBackground(true);
this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);
对于继承QMainWindow
的新类。例如,它隐藏在 gnome 任务栏中,但在 Awn(awant windows 导航器)中,我将其播种在事件窗口列表中:(。
第一部分呢?前段时间,我在重载的 paintEvent
中使用 QRegion、QPixmap
和掩码进行了此操作。我把代码弄丢了。你能帮我解决这个问题吗?
最佳答案
关于问题的第一部分,您可能正在寻找这样的东西:
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));
希望这对你有帮助,问候
关于c++ - QT:图片作为窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5525683/