0

QT のメイン ウィンドウがあり、その上に、下の画像のように、ウィジェット (ボタンを含む) を追加したいと考えています。ドック ウィジェットを追加すると、別の行に追加されますが、既存のメイン ウィンドウにオーバーレイとして追加されません。 ここに画像の説明を入力 入力はありますか?

4

2 に答える 2

0

これには QStackedLayout の使用を検討する必要があります。

于 2014-01-18T17:03:59.747 に答える
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();
}
于 2013-10-18T00:11:11.037 に答える