在图层上方添加元素
Add element above layers
我在 Widows 10、QtCreator 和 QtDesigner 上使用 Qt (5.12.4) 设计了一个 GUI。在这一个中,我添加了很多层来做一些根据 window.
的大小调整大小的事情
但是我要求在中间的这个 GUI 之上添加一个图像。如果不重做我的所有图层就无法完成此操作,那么是否可以在 GUI 的某处添加一个元素(此处为图像)而不将其包含在我的图层之一中?
提前感谢您的帮助。
最好的问候
我终于跟随@Farshid616 的 link,创建了我自己的 class :
class Overlay : public QWidget {
public:
explicit Overlay(QWidget *parent = nullptr) : QWidget(parent) {
setAttribute(Qt::WA_NoSystemBackground);
setAttribute(Qt::WA_TransparentForMouseEvents);
QPixmap pic("://Ressources/img/tonneauGravesMarques.jpg");
int width = 117;
int height = 74;
QPixmap scaled=pic.scaled ( width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
QLabel *label = new QLabel(this);
label->setPixmap(scaled);
this->resize(width, height);
}
};
并在我的主要功能中添加这样的一项:
MainWindow::MainWindow(QWidget *parent) : AbstractMainWindow(parent)
{
qDebug() << "TarMainWindow::TarMainWindow";
ui->setupUi(this);
// Create widget for displaying image above all layers
m_overlay = new Overlay;
// Add this widget to main window
this->layout()->addWidget(m_overlay);
}
它正在运行!
我在 Widows 10、QtCreator 和 QtDesigner 上使用 Qt (5.12.4) 设计了一个 GUI。在这一个中,我添加了很多层来做一些根据 window.
的大小调整大小的事情但是我要求在中间的这个 GUI 之上添加一个图像。如果不重做我的所有图层就无法完成此操作,那么是否可以在 GUI 的某处添加一个元素(此处为图像)而不将其包含在我的图层之一中?
提前感谢您的帮助。 最好的问候
我终于跟随@Farshid616 的 link,创建了我自己的 class :
class Overlay : public QWidget {
public:
explicit Overlay(QWidget *parent = nullptr) : QWidget(parent) {
setAttribute(Qt::WA_NoSystemBackground);
setAttribute(Qt::WA_TransparentForMouseEvents);
QPixmap pic("://Ressources/img/tonneauGravesMarques.jpg");
int width = 117;
int height = 74;
QPixmap scaled=pic.scaled ( width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
QLabel *label = new QLabel(this);
label->setPixmap(scaled);
this->resize(width, height);
}
};
并在我的主要功能中添加这样的一项:
MainWindow::MainWindow(QWidget *parent) : AbstractMainWindow(parent)
{
qDebug() << "TarMainWindow::TarMainWindow";
ui->setupUi(this);
// Create widget for displaying image above all layers
m_overlay = new Overlay;
// Add this widget to main window
this->layout()->addWidget(m_overlay);
}
它正在运行!