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

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 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失