面向copy编程 2023-03-06 21:37 采纳率: 100%
浏览 22
已结题

pyside6,Qchart.legend().setGeometry无法更改宽高

我用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()
  • 写回答

2条回答 默认 最新

  • 「已注销」 2023-03-06 22:05
    关注

    “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()
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 3月6日

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 深度学习残差模块模型
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)