zoukankan      html  css  js  c++  java
  • QT:在其他窗口中显示QMainWindow

    问题:在QFrame中嵌入QMainWindow窗口,却无法显示QMainWindow窗口,调用QMainWindow的show()却能出现单独弹出一个QMainWindow窗口。

    解决:

    由于QMainWindow有标题栏,导致无法嵌入显示,通过设置窗口标志函数setWindowFlags设置窗口标志未Qt::FramelessWindowhint去除QMainWindow的标题栏,即可显示

    代码如下:

    //MyWindows.h
    class Frame : public QFrame
    {
    public:
      Frame(QWidget *parent = nullptr);
    };
    
    //MyWindows.cpp
    
    Frame::Frame(QWidget *parent) : QFrame(parent)
    {
      QMainWindow *mainWindow = new QMainWindow(this);
      mainWindow->setWindowFlags(Qt::FramelessWindowHint);
        QLabel * label = new QLabel("Hello World!", mainWindow);
      QVBoxLayout *vLayout = new QVBoxLayout(this);
      vLayout->addWidget(mainWindow);  
    }
    
    //main.cpp
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        Frame w;
        w.show();
        return a.exec();
    }
  • 相关阅读:
    c/c++指针
    C++小思
    gvim-ide plugins
    Windows下文件的所有和权限
    C++枚举类型
    linux的cgroup控制
    linux的free命令
    linux下可以禁用的一些服务
    bat programming is easy and powerful
    c++类定义代码的分离
  • 原文地址:https://www.cnblogs.com/2018shawn/p/11428371.html
Copyright © 2011-2022 走看看