aszchong 2023-02-05 22:49 采纳率: 66.7%
浏览 20
已结题

关于python 类中一个函数获取另一个函数中变量的实时值的问题。

我用python 和pyside6(qt)写了一个图形界面,主要用来操作界面中的表格。
在一个类中调用界面,类中的函数对表格进行操作

class Widget(QWidget, Ui_Form):  
    def __init__(self):  
        super().__init__() 
        self.setupUi(self)  

      def table(self):
        old = update()
        h = 10  # 行,居中为10
        l = 0  # 列,起始
        while True: 
            new = update()
            if new[ > old:  
                self.bg.item(h, l).setBackground(QtGui.QColor(34, 139, 34))  # 将对应位置设置为绿色
            elif new < old:
                self.bg.item(h, l).setBackground(QtGui.QColor(227, 23, 13))  # 将最对应位置设置为红色
          old = new  # 更新旧标志
                l += 1  # 列右移动
            sleep(1.2)  


我想通过一个按钮来在当前操作表格块的上方显示特定的文字,这就需要另一个函数获得table函数中行(h)和列(l)的实时值来确定位置,请问如何从类中的另一个函数获取本函数中变量的运行实时值?

def mark(self):
    self.bg.setItem(h - 1, l, QTableWidgetItem('ok'))  # 设置标志


能有简易代码更好,十分感谢!元宵节快乐!

  • 写回答

3条回答 默认 最新

  • Oops_GTC 2023-02-05 23:23
    关注

    可以将行(h)和列(l)作为类的成员变量,然后在 table 函数和另一个函数中共享它们的值。
    例如:

    class Widget(QWidget, Ui_Form):  
        def __init__(self):  
            super().__init__() 
            self.setupUi(self)  
            self.h = 10
            self.l = 0
     
        def table(self):
            old = update()
            while True: 
                new = update()
                if new > old:  
                    self.bg.item(self.h, self.l).setBackground(QtGui.QColor(34, 139, 34))  # 将对应位置设置为绿色
                elif new < old:
                    self.bg.item(self.h, self.l).setBackground(QtGui.QColor(227, 23, 13))  # 将最对应位置设置为红色
                old = new  # 更新旧标志
                self.l += 1  # 列右移动
                sleep(1.2)  
     
        def another_function(self):
            # 获取 table 函数中行(h)和列(l)的实时值
            position_text = f"Row: {self.h}, Column: {self.l}"
            # 显示文字
            self.text_label.setText(position_text)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月14日
  • 已采纳回答 2月6日
  • 创建了问题 2月5日

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。