面向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日

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP