PEHDOMвставил ваш пример пишет AttributeError: module ‘PyQt5.QtGui’ has no attribute ‘QWidget’
мой код mainа
import sys
from samplestrorint import *
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox, QSpinBox
import strorint1
def log_uncaught_exceptions(ex_cls, ex, tb):
text = '{}: {}:\n'.format(ex_cls.__name__, ex)
import traceback
text += ''.join(traceback.format_tb(tb))
print(text)
QMessageBox.critical(None, 'Error', text)
quit()
sys.excepthook = log_uncaught_exceptions
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.statusBar().showMessage('Stop')
self.ui.pushButton.clicked.connect(self.Start)
self.ui.pushButton_2.clicked.connect(self.Stop)
self.ui.pushButton.clicked.connect(lambda: self.statusBar().showMessage('запущен'))
self.ui.pushButton_2.clicked.connect(lambda: self.statusBar().showMessage('остановлен'))
self.layout = QtGui.QGridLayout(self)
# r
self.r_label = QtGui.QLabel(self, text = 'r:')
self.r = QtGui.QSpinBox(self) # Создаем спинбокс
self.r.setObjectName('r') # Устанавлваем имя виджета, чтобы понимать кто отправитель события
self.r.setRange(1, 10)
self.r.setSingleStep(1)
self.layout.addWidget(self.r_label, 0, 0)
self.layout.addWidget(self.r, 0, 1)
def get_r(self):
# возвращает r
return self.r.value()
def get_t(self):
# возвращает t
return self.t.value()
def get_all(self):
# возвращает два значения первое r второе t
return self.r.value(), self.t.value()
def get_list_values(self):
# возвращает кортеж значений, первое r второе t
return (self.r.value(), self.t.value())
def get_dict_values(self):
# возвращает значения в виде словаря
return {'r':self.r.value(), 't':self.t.value()}
def r_changed(self, value):
# должно отработать когда меняют значение r
print('это метод r_changed, r=', value)
def t_changed(self, value):
# должно отработать когда меняют значение t
print('это метод t_changed, t=', value)
def changed(self, value):
# один слот к которому цепляються все спнбоксы, отрабатывает когда меняем значение любого спнбокса
sender_name = self.sender().objectName()
print('это метод changed, спинбокс ', sender_name, 'сменил значение', value)
def Start(self):
pass
def Stop(self):
pass
if __name__=="__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MainWindow()
myapp.show()
sys.exit(app.exec_())
r = myapp.get_r()
t = myapp.get_t()
print('значения пооnдельности: r=', r, 't= ', t)
r,t = myapp.get_all()
print('значения вместе: r=', r, 't= ', t)
lst = myapp.get_list_values()
print('значения кортежем:', lst)
dct = myapp.get_dict_values()
print('значения словарем:', dct)[code python]