qt实现窗口B始终显示在窗口A上,且上层窗口在电脑任务栏不显示缩图

场景:窗口A上面始终显示窗口B(透明背景)

/*****************************************/

首先,在主窗口即底部窗口重写changeEvent

QtGuiApplication1::QtGuiApplication1(QWidget *parent)
: QWidget(parent)
, m_pQtGuiClass(nullptr)
{
  ui.setupUi(this);
  setWindowFlags(Qt::FramelessWindowHint);
  m_pQtGuiClass = new QtGuiClass();
  m_pQtGuiClass->show();
}

void QtGuiApplication1::changeEvent(QEvent* event)
{
  if (isVisible()) 
  {
	if (m_pQtGuiClass)
		m_pQtGuiClass->raise();
  }

    QWidget::changeEvent(event);
}

这样做了之后,会发现,在电脑任务栏显示两个窗口

所以,还需要隐藏上面窗口在任务栏的显示

QtGuiClass::QtGuiClass(QWidget *parent)
  : QWidget(parent)	
{
  ui.setupUi(this);
  setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow);// 隐藏 Qt::SubWindow
}
posted @ 2024-05-10 19:45  隔壁老张爱吃鱼  阅读(148)  评论(0)    收藏  举报