我的需求:想全屏一个子窗口QMidSubwindow,禁止显示最大化最小化和关闭按钮。
我开始尝试的是网上介绍的方法,把结果展现给大家一下,最后再总结:
方法1:QMidSubwindow直接调用showMaximized(),我的疑问在图片上,为啥我的禁止子窗口显示最大化、最小化、关闭按钮,没有成功呢???
源码:
ExaminationForm *patientExamForm = new ExaminationForm();
patientExamForm->setWindowTitle("病人检查");
QMdiSubWindow *patientExamSubWindow = ui.mdiArea->addSubWindow(patientExamForm);
//禁止子窗口显示最大化、最小化和关闭按钮
patientExamSubWindow->setWindowFlags(Qt::WindowMinMaxButtonsHint&Qt::WindowCloseButtonHint);
//最大化显示子窗口
patientExamSubWindow->showMaximized();
结果图:
主窗口图
点击工具栏辐射图标,打开我的子窗口。结果如下:
方法2:调用showFullScreen()方法
解决过程1,直接调用showFullScreen()方法
源码:
ExaminationForm *patientExamForm = new ExaminationForm();
patientExamForm->setWindowTitle("病人检查");
patientExamSubWindow->setWindowFlags(Qt::WindowMinMaxButtonsHint&Qt::WindowCloseButtonHint);
patientExamSubWindow->showFullScreen();
结果
解决过程2,从网上知道
写道
QT中窗口部件QWidget成员函数showFullScreen();是用于将窗口部件全屏显示,但是他只对窗口模式的部件有用。子窗口的特征是 Qt::SubWindow,不是独立的窗口。因此对其调用showFullScreen()无效。通过对对子窗口调 用:setWindowFlags(Qt::Dialog);或setWindowFlags(Qt::Window);将其设为窗口模式后,即可调用 showFullScreen();进行全屏显示了。
所以更改源码加上窗口标记 setWindowFlags
QMdiSubWindow *patientExamSubWindow = ui.mdiArea->addSubWindow(patientExamForm);
patientExamSubWindow->setWindowFlags(Qt::WindowMinMaxButtonsHint&Qt::WindowCloseButtonHint);
//设置成窗口形式
patientExamSubWindow->setWindowFlags(Qt::Window);
patientExamSubWindow->showFullScreen();
解决过程3,最大化、最小化窗口、关闭按钮没消失,是因为设置窗口标记的时候不能累加,应该一次设定窗口标记。
预示源码改成这样
ExaminationForm *patientExamForm = new ExaminationForm();
patientExamForm->setWindowTitle("病人检查");
QMdiSubWindow *patientExamSubWindow = ui.mdiArea->addSubWindow(patientExamForm);
patientExamSubWindow->setWindowFlags(Qt::Window&Qt::WindowMinMaxButtonsHint&Qt::WindowCloseButtonHint);
patientExamSubWindow->showFullScreen();
结果:
改成这样写patientExamSubWindow->setWindowFlags(Qt::Window&Qt::WindowMinMaxButtonsHint&Qt::WindowCloseButtonHint);
只是解决了屏蔽子窗口的最大化等按钮问题,以及解决了让子窗口不跳出主窗口等问题(这个地方我也不懂)
但是最大的问题,为啥showFullScreen没起到作用呢,没最大化展现啊。。。。
到底是什么原因呢?
我这个子窗口也是顶级窗口也是非模态窗口啊,为啥showFullScreen不行呢。。。我正在考虑中。。。
//重新画以显示器尺寸大小画界面
navigationSubWindow->setGeometry(0,0,QApplication::desktop()->width(),QApplication::desktop()->height());
navigationSubWindow->show()
//窗口无frame无最大最小框,无框架就是没有标题栏,状态栏和边框。
setWindowFlags(Qt::FramelessWindowHint)
分享到:
相关推荐
在Qt编程中,子窗口与父窗口之间的交互是常见的需求,包括窗口间的切换和数据传递。这涉及到Qt的窗口系统和信号与槽机制。本文将深入探讨如何在Qt环境中实现子窗口与父窗口的切换以及如何在窗口之间传递数据。 首先...
2. 在`mainwindow.ui`中添加子窗口控件:通过QT Designer将子窗口控件添加到主窗口布局中,如`QStackedWidget`用于页面切换,`QDockWidget`用于浮动窗口,`QTabWidget`用于标签页。 3. 实现子窗口的添加和切换:在`...
1. **创建子窗口类**:首先,你需要为要嵌入的子窗口创建一个新的Qt Widgets类。这个类通常继承自`QWidget`或`QMainWindow`,并包含所需的UI元素和逻辑。 2. **实例化子窗口**:在主程序中,你需要实例化这个子窗口...
以上就是"qt 子窗口显示的图片点击显示到主窗口"这一主题涵盖的主要知识点,包括Qt框架的理解、窗口和控件的使用、事件处理、窗口间通信以及性能优化。这些知识对于开发复杂的Qt GUI应用程序至关重要。
本主题将详细探讨如何在Qt中实现从子窗口(子对话框)向父窗口传递数据,具体涉及的主要文件包括`mainwindow.cpp`、`main.cpp`、`myform.cpp`、`logindlg.cpp`、`mainwindow.h`、`myform.h`、`logindlg.h`以及UI文件...
QT全屏显示是QT编程中一个常见的需求,特别是在开发桌面应用程序时,为了提供更好的用户体验,开发者经常需要将应用切换到全屏模式。本篇将详细讲解如何在QT中实现全屏显示,并通过代码示例来解析`...
在Qt框架中,创建一个主窗口并从主窗口中弹出子窗口是常见的操作,尤其在设计GUI应用程序时。这个过程通常涉及到信号和槽机制,这是Qt的核心特性之一,用于对象间的通信。让我们深入探讨如何在Qt中实现这一功能。 ...
在Qt编程中,窗口间的通信是常见的需求,无论是主窗口(MainWindow)与子窗口(ChildWindow)之间的数据交互,还是不同子窗口之间的信息传递。"QT父子窗口相互传值"这个主题,主要涉及Qt框架中如何有效地实现这种...
在Qt6框架中,子窗口向父窗口传递数据是一个常见的需求,这通常涉及到窗口间的通信。Qt6提供了多种方法来实现这种通信,包括信号与槽、共享数据对象、全局变量等。下面我们将深入探讨这些方法,并通过实例进行解析。...
在QT中,窗口管理是构建用户界面的重要部分,"QTwindow_qtaddwindow_QT编程_QT_子窗口_"这个标题显然是关于如何在QT程序中创建和管理子窗口的教程。 在QT中,窗口主要由`QWidget`类及其派生类来表示,如`...
在Qt6框架中,开发GUI应用程序时,我们经常会遇到子窗口与父窗口之间通信的需求,尤其是在涉及多个控件交互的场景。子窗口向父窗口传递数据是常见的操作,例如用户在子窗口中填写表单后,点击确认按钮,将表单数据...
本文将深入探讨如何在Qt5 GUI中实现主窗口(Parent Window)与子窗口(Child Window)之间的数据传递,确保程序的正常运行。 首先,我们需要了解Qt5中的窗口类。`QMainWindow`是Qt5中的主要窗口类,通常用于创建...
在子窗口中调用父窗口的成员函数的方法 1、用FindWindow("类名(可以是派生类)","窗口标题")或GetParent(),二者均能返回父窗口句柄,并能直接使用其成员函数。但是此法只能调用CWnd类里的成员函数,而不能调用自己...
这个“pyqt5对用qt designer设计的窗体实现弹出子窗口test.zip”示例就演示了如何在主窗口中触发一个子窗口的弹出。下面我们将详细探讨这一过程中的关键知识点。 首先,`mainWindow.py`文件通常包含了主窗口...
本文将深入探讨如何利用QtWebEngine实现C++中的网页全屏显示。 首先,我们需要理解QtWebEngine的核心组件:`QWebEngineView`。它是显示网页的主要类,相当于QtWebKit中的`QWebView`。`QWebEngineView`可以加载URL并...
qt 工程文件 实现父子窗口之间的切换 主要步骤如下: 1.在子窗口的cpp源文件中(childwindow.cpp),声明一个自定义信号(void mysignal()) 和 一个用于发送自定义信号的自定义槽函数( void sendMysignal() )。 2.在...
你可以查看`main.cpp`或其他源文件,学习如何在QT4.6环境中创建和管理`QToolBar`和`QDockWidget`,以及如何控制窗口的全屏状态。 总的来说,QT4.6的`QToolBar`和`QDockWidget`提供了灵活的布局和交互方式,让开发者...
在QT编程中,自定义窗口边框是一种常见的需求,它可以让开发者创造出更加独特且符合应用风格的用户界面。本教程将深入探讨如何在QT中实现自定义窗口边框,主要涉及的技术点包括QWindow、QOpenGLWidget以及QEventLoop...
在Qt编程中,有时我们可能需要创建一个没有系统默认边框和标题栏的窗口,以实现自定义的界面效果。然而,这样的无边框窗口在最大化后,通常无法通过常规方式拖动来还原窗口大小。本篇文章将详细介绍如何通过重定义`...
本主题将深入探讨如何在QT的两个窗口间传递值,以便在一个窗口(通常称为子窗口)中输入数据后,能够将这些数据有效地传递回父窗口。 首先,我们需要了解QT中的基本窗口类,如`QWidget`、`QMainWindow`以及`QDialog...