Я пытаюсь использовать Qspinboxs в качестве заданных значений для некоторых функций.но я не могу передать эти переменные другим функциям.
попытался использовать глобальные переменные безуспешно.это пример кода.
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMainWindow,QLabel,
QDoubleSpinBox,QFileDialog, QApplication, QTableWidget, QPushButton,
QMessageBox, QGridLayout, QWidget
import pandas as pd
import numpy as np
data = np.arange(1,100,2)
df = pd.DataFrame(data=data, columns=['M'])
M = df['M']
print (M)
Окно класса (QtWidgets.QWidget):
def __init__(self):
super(Window, self).__init__()
self.initUi()
def initUi(self):
self.setWindowTitle("Cut-off points")
self.setGeometry(200, 100, 530, 350)
self.label = QLabel("A", self)
self.label.setGeometry(230, 20, 200, 100)
self.label.setStyleSheet("QLabel{font-size: 30px;setFontItalic;font-
family: TimeNewRoman;"
"color: #7f2e0b;}")
self.labe2 = QLabel("B", self)
self.labe2.setGeometry(330, 20, 200, 100)
self.labe2.setStyleSheet("QLabel{font-size: 30px;setFontItalic;font-
family: TimeNewRoman;"
"color: #7f2e0b;}")
self.labe3 = QLabel("C", self)
self.labe3.setGeometry(430, 20, 200, 100)
self.labe3.setStyleSheet("QLabel{font-size: 30px;setFontItalic;font-
family: TimeNewRoman;"
"color: #7f2e0b;}")
self.SpinBox1=QDoubleSpinBox(self)
self.SpinBox1.setGeometry(230, 90, 70, 30)
self.SpinBox1.setValue(0.1)
self.SpinBox1.valueChanged.connect(self.Rok)
self.SpinBox2 = QDoubleSpinBox(self)
self.SpinBox2.setGeometry(330, 90, 70, 30)
self.SpinBox2.setValue(0.5)
self.SpinBox2.valueChanged.connect(self.Rok)
self.SpinBox3 = QDoubleSpinBox(self)
self.SpinBox3.setGeometry(430, 90, 70, 30)
self.SpinBox3.setValue(0.3)
self.SpinBox3.valueChanged.connect(self.Rok)
self.label2 = QLabel("Rock", self)
self.label2.setGeometry(30, 50, 200, 100)
self.label2.setStyleSheet("QLabel{font-size: 40px;setFontItalic;font-
family: TimeNewRoman;"
"color: #7f2e0b;}")
self.label3 = QLabel("Rock1", self)
self.label3.setGeometry(30, 100, 200, 100)
self.label3.setStyleSheet("QLabel{font-size: 40px;setFontItalic;font-
family: TimeNewRoman;"
"color: #7f2e0b;}")
self.label4 = QLabel("Rock2", self)
self.label4.setGeometry(30, 150, 200, 100)
self.label4.setStyleSheet("QLabel{font-size: 40px;setFontItalic;font-family: TimeNewRoman;"
"color: #7f2e0b;}")
button_11 = QPushButton("Ok", self)
button_11.setGeometry(200, 270, 100, 60)
button_11.setStyleSheet("QPushButton{font-size: 30px;font-family: TimeNewRoman;"
"color: rgb(255, 255, 255);background-color: #f413e5;}")
button_11.clicked.connect(self.CloseAPP)
self.show()
def Rok(self, x):
global A, B, C
A = float(self.SpinBox1.value())
B = float(self.SpinBox2.value())
C = float(self.SpinBox3.value())
return A, B, C
def Rock(x):
if x['M'] < A:
return 1
return 0
df['sm']= df.apply(Rock, axis=1)
def CloseAPP(self):
reply = QMessageBox.question(self,"close","are you sure",
QMessageBox.Yes | QMessageBox.No,
QMessageBox.No)
if reply == QMessageBox.Yes:
self.close()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
app.exec()
Я ожидаю получить фрейм данных для некоторых столбцов, используя условия if, else на основе набораочки, полученные в спинбоксах.