某些软件需要用到QDockwidget停靠窗口,这时可能就需要有一个需求,在点击QDockWidget的悬浮按钮后让窗口指定一个大小,并且显示在桌面中间,点击关闭悬浮后的关闭按钮后,让悬浮窗口自动停靠到原来位置

点击浮动到屏幕中间并初始化大小

QDickWidget在提升为浮动窗口时,会触发QEvent::ZOrderChange事件,因此只需要重写event事件函数,并处理即可

bool MyDockwidget::event(QEvent* event)
	if(event->type() == QEvent::ZOrderChange)
			if(isFloating())	//判断是否变为浮动窗口
					this->resize(600,400);	//改变初始化大小
					QDesktopWidget *desk = QApplication::desktop();
					this->move((desk->width()-this->width())/2,(desk->height()-this->height())/2);
					this->show();
	return QDockWidget::event(event);

关闭浮动窗口后自动归位

同理,只需要重写关闭事件函数进行处理

void MyDockWidget::closeEvent(QCloseEvent* event)
		if(isFloating())
				this->setFloating(false);	//设置浮动标志为false
				//创建一个关闭浮动窗口的事件,发送给事件队列
				QEvent* e = new QEvent(QEvent::ZOrderChange);
				QApplication::sendEvent(this,e);
				event->ignore();	//最后忽略事件,不关闭窗口
		return QDockWidget::closeEvent(event);
                    简介某些软件需要用到QDockwidget停靠窗口,这时可能就需要有一个需求,在点击QDockWidget的悬浮按钮后让窗口指定一个大小,并且显示在桌面中间,点击关闭悬浮后的关闭按钮后,让悬浮窗口自动停靠到原来位置https://www.cnblogs.com/luoxiang/p/14277269.html...
QDockWidget是一个可以停靠在QMainWindow内的窗口控件,它可以保持在浮动状态或者在指定位置作为子窗口附加到主窗口中,QMainWindow类的主窗口对象保留有一个用于停靠窗口的区域,这个区域在控件的中央周围
QDoCKWidget类中的常用方法
				
* QDockWidget停靠窗口控件来实现浮动窗口的功能 * QDockWidget停靠窗口控件一般使用在QMainWindow中,它是放置在QMainWindow中的中央窗口小部件周围的停靠窗口小部件区域中的次要窗口 * QDockWidget可以在主窗口的四个边缘停靠,用户可以通过拖动和放置QDockWidget到主窗口的边缘来创建和定位布局 * QDockWidget常用于显示工具栏、属性编辑器、文件浏览器等工具
QDockWidget大小设置 1、首先,定义一个QDockWidget对象: QDockWidget *dock = new QDockWidget(); 2、之后新定义一个类,继承QWidget: class QMyWidget : public QWidget public: QSize sizeHint() const return size; QSize size; 3、之后在代码里定义一个QMyWidget类型的对象,设置大
if(target==ui->widget_6&&event->type()==QEvent::Resize) auto resizeEvent=static_cast<QResizeEvent*>(event); //将其地图子控件设置为一样大小 ui->widget_5->resize(resizeEvent->size()); //如果中间地图底盘发生了移动 if(target   实现这个按钮唯一麻烦的点就在于算出N个子按钮弹出的位置。看下图:    假设:按钮散落的位置为0到180°,我们有N个按钮,圆心坐标为(x,y),圆心到散落按钮的左上角(leftTop)位置距离为R。   由于我们有N个按钮,散落的总角度为180°,则每个按钮的之间的夹角可以算出为180N−1​\frac{ 180}{ N - 1}​N−1180​​ ,我们定义为上图的夹角A。   则我们可以用三角函数轻松得出圆心到子按钮左上角的x轴和y轴的偏移量。分别为夹角A的对边和邻边。
支持windows和linux平台,支持qt5.12.10以上版本,支持qt6全系列版本,资源只提供了window下Qt5.12.10动态库,MinGW7.3.0编译。 不得用于商业系统,详情 https://blog.csdn.net/dy2017/article/details/129718740
1.Qt实现窗口停靠悬浮使用类QDockWidget,它有两个重要方法用来设置停靠特性以及停靠区域 1 dw1->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);//设置停靠窗口特性,可移动,可关闭 2 dw1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);//设置可停靠区域为主窗口左边和右边
要在 WinForm 中实现鼠标悬浮显示自定义控件,可以使用 ToolTip 控件和自定义控件的 OnMouseHover 事件。 首先,将 ToolTip 控件拖放到窗体上,并在自定义控件的属性中设置 TooltipText 属性为要显示的文本。 接下来,在自定义控件中添加 OnMouseHover 事件处理程序,并在其中实例化 ToolTip 控件,并将其 Show 方法作为参数传递自定义控件和 TooltipText 属性的值。 以下是一个示例代码: ```csharp private void customControl1_MouseHover(object sender, EventArgs e) ToolTip toolTip = new ToolTip(); toolTip.Show(customControl1.TooltipText, customControl1, 0, customControl1.Height); 这将在自定义控件的底部显示工具提示,当鼠标悬停在自定义控件上时,显示 TooltipText 属性中设置的文本。