Форум сайта python.su
как будет выглядеть передача значений из spinBox виджета в переменную, объявленную в скрипте(модуле) питон?
Офлайн
Venus в самом spinBox-е есть метод value() который возвращает значение.
А как вы сделаете , так и будет. В самом простом виде както так:
a = myspinbox.value()
где:
myspinbox - экземпляр QSpinBox
a - переменная в котороую занесется значение спинбокса
[code python][/code]
Офлайн
PEHDOMа как терь значение передать в переменную модуля(скрипта) питона?
Venus в самом spinBox-е есть метод value() который возвращает значение.А как вы сделаете , так и будет. В самом простом виде както так:a = myspinbox.value()где: myspinbox - экземпляр QSpinBoxa - переменная в котороую занесется значение спинбокса
Офлайн
VenusА это зависит от того что вы хотите. В КуТе есть такое понятие как сигналы и слоты. Когда вы нажимаете на кнопку, она генерирует сигнал “clicked”, вот вы и соединяете сигнал нажатия своей кнопки с слотом(методом) self.Stop().
вот пример нажатия кнопки self.ui.StoppushButton_2.clicked.connect(self.Stop) в скобках вызов функции обявленной в коде программы вызывающей окно, я подумал и со спином также указать “модуль.перменную” конструкция как будет выглядеть,
self.ui.mySpinBox.valueChanged.connect(self.spinboxChanged) ... def spinboxChanged(self, value): print('new value of spinbox is:', value)
[code python][/code]
Отредактировано PEHDOM (Июль 9, 2018 16:18:21)
Офлайн
PEHDOMя запутался, есть файл main он запускает созданное главное окно в окне спин бокс, вот код мэйна, куда что ничего не понял, здесь import strorint переменная “r” которой надо присвоить значение
import sys from MyMainWindow import * from PyQt5 import QtCore, QtGui, QtWidgets, Qt from PyQt5.QtWidgets import QMessageBox import strorint 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.StartpushButton.clicked.connect(self.str) self.ui.StoppushButton_2.clicked.connect(self.Stop) self.ui.StartpushButton.clicked.connect(lambda: self.statusBar().showMessage(' запущен')) self.ui.StoppushButton_2.clicked.connect(lambda: self.statusBar().showMessage(' остановлен')) def str(self): pass def Stop(self): pass if __name__=="__main__": app = QtWidgets.QApplication(sys.argv) myapp = MainWindow() myapp.show() sys.exit(app.exec_())
Офлайн
Venusя честно говоря тоже ничего не понял, какой переменной “r” нужно присвоить значение из пинбокса? по какому событию это должно происходить?
куда что ничего не понял, здесь import strorint переменная “r” которой надо присвоить значение
[code python][/code]
Офлайн
PEHDOMr находится в скрипте(модуле) питона
Офлайн
мне кажется или с lineEdit попроще будеет?
Офлайн
Venusна самом деле один хрен.. тут все зависит от того где и как вы собираетесь эту “r” использовать. обычная практика это метод класса по типу:
мне кажется или с lineEdit попроще будеет?
... class MainWindow(QtWidgets.QMainWindow): ...... def getSomeVal(self): return self.ui.spinbox_name.value() ..... myapp = MainWindow() .... r = myapp.getSomeVal()
... class MainWindow(QtWidgets.QMainWindow): def __init__(self, parent=None): .... self.ui.spinbox_name.valueChanged.connect(self.spinboxChanged) ... def spinboxChanged(self, value): print('new value of spinbox is:', value) # при изменении значения спинбокса печатаем новое значение
[code python][/code]
Офлайн
PEHDOMа если не один спинбокс?в код дописывать или тоже через деф?
“r” и
Офлайн