Найти - Пользователи
Полная версия: QSpinBox Qt5 передача значения в питон
Начало » GUI » QSpinBox Qt5 передача значения в питон
1 2 3 4 5 6
Venus
как будет выглядеть передача значений из spinBox виджета в переменную, объявленную в скрипте(модуле) питон?
PEHDOM
Venus в самом spinBox-е есть метод value() который возвращает значение.
А как вы сделаете , так и будет. В самом простом виде както так:
a = myspinbox.value()
где:
myspinbox - экземпляр QSpinBox
a - переменная в котороую занесется значение спинбокса

Venus
PEHDOM
Venus в самом spinBox-е есть метод value() который возвращает значение.А как вы сделаете , так и будет. В самом простом виде както так:a = myspinbox.value()где: myspinbox - экземпляр QSpinBoxa - переменная в котороую занесется значение спинбокса
а как терь значение передать в переменную модуля(скрипта) питона?
вот пример нажатия кнопки self.ui.StoppushButton_2.clicked.connect(self.Stop) в скобках вызов функции обявленной в коде программы вызывающей окно, я подумал и со спином также указать “модуль.перменную” конструкция как будет выглядеть, читал документацию ничего не понял ((
PEHDOM
Venus
вот пример нажатия кнопки self.ui.StoppushButton_2.clicked.connect(self.Stop) в скобках вызов функции обявленной в коде программы вызывающей окно, я подумал и со спином также указать “модуль.перменную” конструкция как будет выглядеть,
А это зависит от того что вы хотите. В КуТе есть такое понятие как сигналы и слоты. Когда вы нажимаете на кнопку, она генерирует сигнал “clicked”, вот вы и соединяете сигнал нажатия своей кнопки с слотом(методом) self.Stop().
А какой сигнал вы хотите с чем соединить для спинбокса? У спинбокса кроме пары сигналов унаследованых от QWidget и QObject есть только один свой сигнал valueChanged() который генерируется когда вы меняете значение в спинбоксе. ФСЕ.
так что както так:
 self.ui.mySpinBox.valueChanged.connect(self.spinboxChanged)
...
def spinboxChanged(self, value):
    print('new value of spinbox is:', value)
или опрашивать спинбокс непосредсвенно уже перед использованием…
Venus
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_())
PEHDOM
Venus
куда что ничего не понял, здесь import strorint переменная “r” которой надо присвоить значение
я честно говоря тоже ничего не понял, какой переменной “r” нужно присвоить значение из пинбокса? по какому событию это должно происходить?
Venus
PEHDOM
r находится в скрипте(модуле) питона
#-*- coding тралял
import туту

r = ()

на шаблоне окна,созданного в Qt5 Desiner, есть SpinBox его значение(ввели или накликали по стрелочкам значение) и передать в r.
сам код передачи значения в переменную в классе мэйнвиндоу или в функции str или Stop! если в классе то я думаю надо прописать на клик а если в функции то он и так присвоит!?!
Venus
мне кажется или с lineEdit попроще будеет?
PEHDOM
Venus
мне кажется или с lineEdit попроще будеет?
на самом деле один хрен.. тут все зависит от того где и как вы собираетесь эту “r” использовать. обычная практика это метод класса по типу:
 ...
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) # при изменении значения  спинбокса печатаем новое значение
Venus
PEHDOM
“r” и
а если не один спинбокс?в код дописывать или тоже через деф?

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) # при изменении значения спинбокса печатаем новое значение

а это - на самом деле один хрен.. тут все зависит от того где и как вы собираетесь эту “r” использовать. обычная практика это метод класса по типу:- использовать собираюсь в глобальной(так понимаю)
#-*- coding ……
import …..

r = ()
def start():
pass
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB