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 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错