在QT Window之上设计自定义QT Widget

时间:2013-10-17 23:01:40

标签: qt qt4

我有一个QT主窗口,除此之外我想添加一个小部件(包含按钮),类似于下图。 如果我添加停靠窗口小部件,它将添加到单独的行中,但不会作为叠加层添加到现有主窗口中。 enter image description here 有什么输入吗?

2 个答案:

答案 0 :(得分:0)

最简单的方法是将叠加窗口小部件的父窗口设置为主窗口。但是因为它不会在任何布局中,所以你必须自己处理它的几何。如果您想要多个叠加层,最后添加的叠加层将是最重要的。

#include <QApplication>
#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QMainWindow *window = new QMainWindow();
    QWidget *centralWiddget = new QWidget();
    window->setCentralWidget(centralWiddget);

    QVBoxLayout *layout = new QVBoxLayout(centralWiddget);

    QPushButton *button = new QPushButton("Button in a layout");
    layout->addWidget(button);

    QPushButton *overlayButton = new QPushButton("Button overlay");
    overlayButton->setParent(window);
    overlayButton->setGeometry(40, 40, 120, 30)

    window->show();

    return app.exec();
}

答案 1 :(得分:0)

你应该考虑使用QStackedLayout这样做。