Skip to main content
标签ad报错:该广告ID(9)不存在。
  主页 > Qt入门

一个简单的Qt/C++ Demo,用于实现在tab页控件上嵌入一个窗口

2023-04-23 浏览:
标签ad报错:该广告ID(7)不存在。

#include <QtWidgets>

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

    QWidget* mainWidget = new QWidget();

    QTabWidget* tabWidget = new QTabWidget(mainWidget);
    QVBoxLayout* layout = new QVBoxLayout(tabWidget);

    // 嵌入一个窗口
    QWindow* subWindow = new QWindow();
    subWindow->setFlags(Qt::SubWindow);
    QSurfaceFormat format;
    format.setDepthBufferSize(24);
    subWindow->setFormat(format);
    subWindow->create();   
    QWidget* subWidget = QWidget::createWindowContainer(subWindow, tabWidget);
    subWidget->setMinimumSize(QSize(640, 480));
    
    // 设置Tab页标题
    tabWidget->addTab(subWidget, "Embedded Window");

    mainWidget->setLayout(layout);
    mainWidget->show();

    return app.exec();
}

该Demo使用Qt Widgets模块创建了一个窗口,并在窗口中加入了一个QTabWidget控件。在QTabWidget中加入了一个QWidget控件作为标签页,在该QWidget控件中嵌入了一个QWindow控件。通过调用QWindow和QWidget的相关函数,可以实现将QWindow嵌入QWidget控件中以实现窗口嵌入标签页的效果。