QT: картинка как окно - PullRequest
       25

QT: картинка как окно

3 голосов
/ 03 апреля 2011

Я хочу сделать оконную раму, используя какую-нибудь картинку.Окно не должно иметь границ, заголовков и т. Д. Оно также должно быть скрыто из списка активных окон (на панели задач).

Вторая часть вопроса, которую я сделал с:

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

this->setAutoFillBackground(true);

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

для новогокласс, который наследует QMainWindow.Он скрыт, например, на панели задач gnome, но в Awn (навигатор окон) я помещаю его в список активных окон: (.

Как насчет первой части. Я сделал это некоторое время назад с QRegion, QPixmap и маска в перегруженном paintEvent. Я потерял код. Вы можете помочь мне с этим?

1 Ответ

0 голосов
/ 03 апреля 2011

относительно первой части вопроса, вы, вероятно, ищете что-то вроде этого:

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

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

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

в качестве альтернативы вы можете создать метку и показать ее в главном окне, что-то вроде этого:

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));

надеюсь, это поможет, с уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...