Собственно, проблема такая: при нажатии на кнопки не происходит ничего. Не могу разобраться, то ли они не ловят сигналы и не выполняется вообще ничего, то ли не передаются значения с line_edit, то ли ошибка в чем-то другом. Прилагаю весь имеющийся код. Буду рада, если вы поможете и укажете на другие ошибки, если они есть.
#main.py import sys import qt from PyQt4 import QtGui if __name__ == '__main__': qApp=QtGui.QApplication(sys.argv) mw=qt.MyWindow() mw.show() sys.exit(qApp.exec_())
#mmv.py def error(l, v, m): if l/(v*m)>1: print("Система неустойчива, пожалуйста, введите другие значения.") def ro (l, m): return l/m def fact(x): i=1 fact=1 while i<=x: fact*=i i+=1 return fact def gamma(l, m, v): return 1/(v-ro(l, m)) def j(ro, v, l, m): return gamma(ro(l, m), v, l)*l def pk(l, m, v, k): if k>v: j=k-v chisl=(ro(l, m)**v/fact(v))*((ro(l, m)/v)**j) x=0 znam=0 while x<=(v-1): znam+=(ro(l, m)**x/fact(x))+((ro(l, m)**v*v)/fact(v)*(v-ro(l, m))) x+=1 return chisl/znam chisl=ro**k/fact(k) x=0 znam=0 while x<=(v-1): znam+=(ro(l, m)**x/fact(x))+((ro(l, m)**v*v)/fact(v)*(v-ro(l, m))) x+=1 return chisl/znam def pt(l, m, v): chisl=(ro(l, m)**v/fact(v))*(v/(v-ro(l, m))) x=0 znam=0 while x<=(v-1): znam+=(ro(l, m)**x/fact(x))+((ro(l, m)**v*v)/fact(v)*(v-ro(l, m))) x+=1 return chisl/znam def lists(v, k, l, m): i_list=[i for i in range (v)] i2_list=[i+v for i in range (k-v)] i3_list=[i for i in range (k)] pk_list=[pk(l, m, v, i) for i in range (v)] w_list=[pk(l, m, v, i) for i in range (v)] i=0 while i<(k-v): w_list.append(pk(l, m, v, v+i)) i+=1 return i_list, i2_list, i3_list, pk_list, w_list
#mmv_ui.py from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(246, 424) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.lamda = QtGui.QLineEdit(self.centralwidget) self.lamda.setGeometry(QtCore.QRect(90, 20, 113, 20)) self.lamda.setObjectName(_fromUtf8("lamda")) self.miu = QtGui.QLineEdit(self.centralwidget) self.miu.setGeometry(QtCore.QRect(90, 50, 113, 20)) self.miu.setObjectName(_fromUtf8("miu")) self.v = QtGui.QLineEdit(self.centralwidget) self.v.setGeometry(QtCore.QRect(90, 80, 113, 20)) self.v.setObjectName(_fromUtf8("v")) self.label = QtGui.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(30, 20, 41, 20)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(30, 50, 21, 16)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self.centralwidget) self.label_3.setGeometry(QtCore.QRect(30, 80, 47, 13)) self.label_3.setObjectName(_fromUtf8("label_3")) self.label_4 = QtGui.QLabel(self.centralwidget) self.label_4.setGeometry(QtCore.QRect(30, 110, 47, 13)) self.label_4.setObjectName(_fromUtf8("label_4")) self.k = QtGui.QLineEdit(self.centralwidget) self.k.setGeometry(QtCore.QRect(90, 110, 113, 20)) self.k.setObjectName(_fromUtf8("k")) self.tableWidget = QtGui.QTableWidget(self.centralwidget) self.tableWidget.setGeometry(QtCore.QRect(20, 180, 201, 192)) self.tableWidget.setObjectName(_fromUtf8("tableWidget")) self.tableWidget.setColumnCount(2) self.tableWidget.setRowCount(0) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, item) self.show_table = QtGui.QPushButton(self.centralwidget) self.show_table.setGeometry(QtCore.QRect(20, 140, 75, 23)) self.show_table.setObjectName(_fromUtf8("show_table")) self.show_plot = QtGui.QPushButton(self.centralwidget) self.show_plot.setGeometry(QtCore.QRect(140, 140, 75, 23)) self.show_plot.setObjectName(_fromUtf8("show_plot")) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 246, 21)) self.menubar.setObjectName(_fromUtf8("menubar")) MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.label.setText(_translate("MainWindow", "lambda", None)) self.label_2.setText(_translate("MainWindow", "miu", None)) self.label_3.setText(_translate("MainWindow", "v", None)) self.label_4.setText(_translate("MainWindow", "k", None)) item = self.tableWidget.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "K", None)) item = self.tableWidget.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "Pk", None)) self.show_table.setText(_translate("MainWindow", "Show table", None)) self.show_plot.setText(_translate("MainWindow", "Show plot", None))
#qt.py import sys import mmv from PyQt4 import QtGui from PyQt4.QtCore import SIGNAL from mmv_ui import Ui_MainWindow from PyQt4.QtGui import QMainWindow #import numpy as np from matplotlib.figure import Figure from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas class MyWindow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): QMainWindow.__init__(self) self.setupUi(self) class wind(Ui_MainWindow): def __init__(self, parent): Ui_MainWindow.__init__(self) self._connectSlots() def _connectSlots(self): self.connect(self.show_table,SIGNAL("clicked()"),self._slotTableClicked) self.connect(self.show_plot,SIGNAL("clicked()"),self._slotPlotClicked) def _slotTableClicked(self): def fill_table(self): table = self.tableWidget() l = int(self.lamda.text()) m = int(self.miu.text()) v = int(self.v.text()) k = int(self.k.text()) print(l, m, v, k) mmv.error(l, v, m) #mmv.lists(v, k, l, m) i3_list=[i for i in range (k)] w_list=[mmv.pk(l, m, v, i) for i in range (v)] i=0 while i<(k-v): w_list.append(mmv.pk(l, m, v, v+i)) i+=1 table.setRowCount(len(k)) for i in range (len(k)): table.setItem(i, 0, i3_list[i]) for j in range (len(k)): table.setItem(j, 1, w_list[j]) def _slotPlotClicked(self): l = int(self.lamda.text()) m = int(self.miu.text()) v = int(self.v.text()) k = int(self.k.text()) mmv.error(l, v, m) mmv.lists(v, k, l, m) class Qt4MplCanvas(FigureCanvas): def __init__(self): self.fig=Figure() self.axes=self.fig.add_subplot(111) self.x=mmv.i3_list self.x2=mmv.i_list self.y=mmv.w_list self.y2=mmv.pk_list self.axes.plot(self.x, self.y, self.x2, self.y2) FigureCanvas.__init__(self,self.fig) qApp=QtGui.QApplication(sys.argv) mpl=Qt4MplCanvas() mpl.show() qApp.exec_() sys.exit(qApp.exec_())