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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵