当前位置: 首页 > article >正文

【PyQt】getattr动态访问对象的属性

问题

使用qtdesigner设计好大体的软件结构,需要使用代码进行批量修改控件样式,self.ui.x 会被解释为访问 self.ui 中名为 x 的属性,而不是将 x 作为变量名来解析,此时需要通过字符串动态访问 self.ui 中的按钮对象

for i in range(20):
      
     x = f"pushButton_{i}"
     self.pushButton_name = self.ui.x
     self.pushButton_name.setStyleSheet("font-size: 18px; padding: 10px;")

修改后的代码

for i in range(20):
    print(i + 1)  # 输出1-20
    x = f"pushButton_{i}" 
    self.pushButton_name = getattr(self.ui, x)  # 动态访问 self.ui 中的按钮对象
    
    self.pushButton_name.setStyleSheet("font-size: 18px; padding: 10px;")  # 设置按钮样式

getattr(self.ui, x):

  • getattr 是 Python 的内置函数,用于动态访问对象的属性。

  • getattr(self.ui, x) 相当于 self.ui.pushButton_0, self.ui.pushButton_1, …,self.ui.pushButton_19。

这样可以正确获取 self.ui 中的按钮对象。


http://www.kler.cn/a/531838.html

相关文章:

  • VSCode设置内容字体大小
  • 我们信仰AI?从神明到人工智能——信任的进化
  • 将markdown文件和LaTex公式转为word
  • 【信息系统项目管理师-选择真题】2021上半年综合知识答案和详解
  • 冷启动+强化学习:DeepSeek-R1 的原理详解——无需监督数据的推理能力进化之路
  • MiniQMT与xtquant:量化交易的利器
  • leetcode——二叉树展开为链表(java)
  • 从 C 到 C++:理解结构体中字符串的存储与操作
  • chrome浏览器chromedriver下载
  • 大数据数仓实战项目(离线数仓+实时数仓)1
  • 《逆向工程核心原理》第一~二章知识整理
  • Vue 3 30天精进之旅:Day 13 - 路由守卫
  • python-leetcode-二叉树的层序遍历
  • 【论文公式】MathType打大写手写字母
  • ANSYS Workbench打开cdb文件
  • Vue-el挂载点
  • 安装及使用Tomcat
  • 软件测试 - 概念篇
  • Python MVC框架和其他Web框架有什么区别?
  • (电脑版)植物大战僵尸幼儿园版本,开启你的冒险之旅!
  • 加载数据,并切分
  • 计算机网络笔记再战——理解几个经典的协议1
  • Leetcode:680
  • 【流媒体】搭建流媒体服务器
  • FFM 因子分解机原理与特征域概念解析
  • 追逐低空经济,无人机研学技术详解