QT零基础——QGraphicsView

1、概要

  QGraphicsView学习笔记。

2、QGraphicsView学习内容

1.1、双击QGraphicsView窗口最大化,再双击复原

  (1)、函数介绍

函数名函数说明
show()用于显示继承来自QWidget的窗口
showNormal()用于是窗口回归正常状态,通常指的是窗口恢复到最大化或最小化之前的原始状态
showMinimized()使窗口最小化的状态显示,此窗口是可见的,但处于最小化状态
showMaximized()使窗口最大化的状态显示,此窗口是可见的,且处于最大化状态
showFullScreen()以全屏方式显示窗口

  (2)、效果演示

//后期补

  (3)、源代码

//鼠标双击图像显示最大化
void ViewImage::mouseDoubleClickEvent(QMouseEvent* event)
{
    //判断鼠标事件是否由鼠标左键触发
	if (event->button() == Qt::LeftButton)
	{
	   //判断QGraphicsView界面是否最大化
		if (this->windowState() != Qt::WindowMaximized)
		{
		   //setWindowFlags()函数设置当前窗口的类型,Window是用于指示窗口应该具有默认的窗口类型
			this->setWindowFlags(Qt::Window);
			
              禁用右上角“放大、缩小、x”等图标(QWidget),否则点了“X”后,该QWidget被删除了,窗口不存在了,故解决办法选择禁用该按钮
			//this->setWindowFlag(Qt::WindowCloseButtonHint, false);
			//this->setWindowFlag(Qt::WindowMaximizeButtonHint, false);
			//this->setWindowFlag(Qt::WindowMinimizeButtonHint, false);
			
			//将当前窗口最大化显示
			this->showMaximized();
		}
		else
		{
		    //如果当前窗口已经最大化,将当前窗口设置为子窗口
			this->setWindowFlags(Qt::SubWindow);
			//设置该窗口的大小,按照原窗口设置
			this->setGeometry(QRect(10, 35, 501, 310));
			//激活并显示窗口,如果窗口之前处于最小化、最大化或排列状系统会将其还原到其原始大小和位置。态
			this->showNormal();
		}
	}
	//重写便于自定义双击事件的内容
    QGraphicsView::mouseDoubleClickEvent(event);
}
QGraphicsViewQt框架的一个控件,用于显示和编辑2D图形。而matplotlib是一个Python的绘图库,用于创建各种类型的图形,包括折线图、散点图、柱状图等。如果想在QGraphicsView显示matplotlib绘制的图形,可以借助PyQt库或PySide库的支持。可以将matplotlib的Figure对象转换为图像数据,然后将图像数据加载到QGraphicsView显示出来。具体步骤如下: 1. 首先导入相关模块,包括matplotlib和PyQt或PySide模块,确保已安装这些库。 2. 创建一个自定义的matplotlib窗口类,继承自FigureCanvasQTAgg,并重写plotSin方法,在该方法使用matplotlib绘制需要的图形。 3. 在需要显示图形的地方,实例化该自定义窗口类的对象,并调用plotSin方法传入相应参数进行绘制。 4. 将绘制好的图形转换为图像数据,可以使用FigureCanvasQTAgg的tostring_rgb方法。 5. 使用QPixmap将图像数据加载到QGraphicsView,可以通过QGraphicsPixmapItem来实现。 6. 最后将QGraphicsView添加到窗口或布局,使其显示出来。 这样就可以在QGraphicsView显示由matplotlib绘制的图形了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [QGraphicsView显示matplotlib绘图刷新图片](https://blog.csdn.net/bluewhu/article/details/104937341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【pyqt5学习】——graphicView显示matplotlib图像](https://blog.csdn.net/qq_45769063/article/details/123602373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值