找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1152|回复: 2

[求助] 一个从mysql读的dataframe数据,多个btn都会调用

3

主题

7

帖子

7

积分

贫民

积分
7
nbmpe 发表于 2022-6-20 11:41:16 | 显示全部楼层 |阅读模式
pyside2界面中, 一个从mysql读的dataframe数据,多个btn都会调用,怎么让每个BTN不用每次用都查一下mysql。
  1. # -*- coding: utf-8 -*-
  2. from PySide2.QtWidgets import QApplication,QMainWindow
  3. from ui_main import Ui_MainWindow


  4. lista = ['a','b','c']

  5. class MainWindow(QMainWindow):

  6.     def __init__(self):
  7.         super().__init__()
  8.         self.ui = Ui_MainWindow()
  9.         self.ui.setupUi(self)

  10.         self.ui.label.setNum(1)
  11.         self.ui.btn1.clicked.connect(self.bt1click)
  12.         self.ui.btn2.clicked.connect(self.bt2click)
  13.         self.ui.btn3.clicked.connect(self.bt3click)

  14.     def bt1click(self):
  15.         i = int(self.ui.label.text())
  16.         abc = lista[i]                    
  17.         print(abc)

  18.     def bt2click(self):
  19.         print(abc)     #怎么调整用abc,而不用再如bt1click中再算一次

  20.     def bt3click(self):
  21.         print(abc)     #怎么调整用abc,而不用再如bt1click中再算一次

  22. app = QApplication([])
  23. mainw = MainWindow()
  24. mainw.show()
  25. app.exec_()
复制代码


ui_main.py
  1. # -*- coding: utf-8 -*-

  2. ################################################################################
  3. ## Form generated from reading UI file 'mainmIFADZ.ui'
  4. ##
  5. ## Created by: Qt User Interface Compiler version 5.15.2
  6. ##
  7. ## WARNING! All changes made in this file will be lost when recompiling UI file!
  8. ################################################################################

  9. from PySide2.QtCore import *
  10. from PySide2.QtGui import *
  11. from PySide2.QtWidgets import *


  12. class Ui_MainWindow(object):
  13.     def setupUi(self, MainWindow):
  14.         if not MainWindow.objectName():
  15.             MainWindow.setObjectName(u"MainWindow")
  16.         MainWindow.resize(312, 349)
  17.         self.centralwidget = QWidget(MainWindow)
  18.         self.centralwidget.setObjectName(u"centralwidget")
  19.         self.btn1 = QPushButton(self.centralwidget)
  20.         self.btn1.setObjectName(u"btn1")
  21.         self.btn1.setGeometry(QRect(40, 220, 75, 23))
  22.         self.btn2 = QPushButton(self.centralwidget)
  23.         self.btn2.setObjectName(u"btn2")
  24.         self.btn2.setGeometry(QRect(130, 220, 75, 23))
  25.         self.label = QLabel(self.centralwidget)
  26.         self.label.setObjectName(u"label")
  27.         self.label.setGeometry(QRect(120, 120, 54, 12))
  28.         self.btn3 = QPushButton(self.centralwidget)
  29.         self.btn3.setObjectName(u"btn3")
  30.         self.btn3.setGeometry(QRect(200, 260, 75, 23))
  31.         MainWindow.setCentralWidget(self.centralwidget)
  32.         self.statusbar = QStatusBar(MainWindow)
  33.         self.statusbar.setObjectName(u"statusbar")
  34.         MainWindow.setStatusBar(self.statusbar)

  35.         self.retranslateUi(MainWindow)

  36.         QMetaObject.connectSlotsByName(MainWindow)
  37.     # setupUi

  38.     def retranslateUi(self, MainWindow):
  39.         MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
  40.         self.btn1.setText(QCoreApplication.translate("MainWindow", u"btn1", None))
  41.         self.btn2.setText(QCoreApplication.translate("MainWindow", u"btn2", None))
  42.         self.label.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None))
  43.         self.btn3.setText(QCoreApplication.translate("MainWindow", u"btn3", None))
  44.     # retranslateUi

复制代码

回复

使用道具 举报

3

主题

7

帖子

7

积分

贫民

积分
7
nbmpe  楼主| 发表于 2022-6-20 11:48:20 | 显示全部楼层
类似 声明一个全局变量,所以控件都可用,且 某些按钮还可以更改,更改后,别的控件获取到的是更改后的数据。
回复 支持 反对

使用道具 举报

3

主题

7

帖子

7

积分

贫民

积分
7
nbmpe  楼主| 发表于 2022-6-20 13:46:23 | 显示全部楼层
已找到方法:希望高手指点其它方法,毕竟半路出家自学的。
  1. num = 10


  2. def demo1():
  3.     # 希望修改全局变量的值
  4.     # 使用global关键字声明一下变量即可,global关键字会告诉解释器后面的变量是一个全局变量
  5.     # 再使用赋值语句,就不会创建局部变量
  6.     global num
  7.     num = 47
  8.     print("demo1==>num = %d" % num)


  9. def demo2():
  10.     global num   #修改之前, 要声明
  11.     num += 1
  12.     print("demo2==>num = %d" % num)

  13. def demo3():
  14.     print(num)

  15. demo1()
  16. demo2()
  17. demo3()
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表