我用pyside6写了一个用Qchart展现三组数据折线图的程序,为了尽可能不挤占绘图区域,我选择将图例legend给独立出来,
self.chart_RM.legend().detachFromChart()
这样就能在绘图区域上层,然后我用setGeometry设置位置和大小,如下
self.chart_RM.legend().setGeometry(QRectF(400, 0, 100, 100))
然而位置能改变,但是大小完全改不了啊,也就是后面两个参数没用,在网上查一查也有类似的问题,有说加个update(),试了没啥用,有没有知道咋解决的给指点一二?
这部分代码就下面几句
self.chart_RM.legend().detachFromChart()
self.chart_RM.legend().setBackgroundVisible(False)
self.chart_RM.legend().setGeometry(QRectF(400, 0, 100, 100))
self.chart_RM.legend().update()
“Devil组”引证GPT后的撰写:
QRectF的四个参数分别为x、y、width和height,其中width和height分别表示矩形的宽度和高度。因此,如果想改变图例的大小,要调整最后两个参数,即width和height。例如,将代码更改为以下内容,可以将图例大小设置为100x100:
self.chart_RM.legend().setGeometry(QRectF(400, 0, 100, 100))
如果图例大小仍然无法改变,请检查其他部分的代码是否有影响图例大小的设置。如果在其他地方设置了图例的大小,可能会覆盖在此处进行的设置。可以尝试在其他地方删除对图例大小的设置并重新运行代码。
另外,调用update()方法可能不会影响图例的大小,因为该方法主要用于重绘小部件,而不是更改其属性。可以尝试调用repaint()方法,该方法将强制窗口小部件重绘。例如:
self.chart_RM.legend().repaint()
不知道你这个问题是否已经解决, 如果还没有解决的话: