Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » QSpinBox Qt5 передача значения в питон [RSS Feed]

#1 Июль 9, 2018 13:58:46

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

как будет выглядеть передача значений из spinBox виджета в переменную, объявленную в скрипте(модуле) питон?

Офлайн

#2 Июль 9, 2018 15:11:16

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

Venus в самом spinBox-е есть метод value() который возвращает значение.
А как вы сделаете , так и будет. В самом простом виде както так:
a = myspinbox.value()
где:
myspinbox - экземпляр QSpinBox
a - переменная в котороую занесется значение спинбокса



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Июль 9, 2018 15:32:23

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

PEHDOM
Venus в самом spinBox-е есть метод value() который возвращает значение.А как вы сделаете , так и будет. В самом простом виде както так:a = myspinbox.value()где: myspinbox - экземпляр QSpinBoxa - переменная в котороую занесется значение спинбокса
а как терь значение передать в переменную модуля(скрипта) питона?
вот пример нажатия кнопки self.ui.StoppushButton_2.clicked.connect(self.Stop) в скобках вызов функции обявленной в коде программы вызывающей окно, я подумал и со спином также указать “модуль.перменную” конструкция как будет выглядеть, читал документацию ничего не понял ((

Офлайн

#4 Июль 9, 2018 16:17:51

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

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)
или опрашивать спинбокс непосредсвенно уже перед использованием…



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 9, 2018 16:18:21)

Офлайн

#5 Июль 9, 2018 16:55:36

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

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_())

Офлайн

#6 Июль 9, 2018 17:31:51

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

Venus
куда что ничего не понял, здесь import strorint переменная “r” которой надо присвоить значение
я честно говоря тоже ничего не понял, какой переменной “r” нужно присвоить значение из пинбокса? по какому событию это должно происходить?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#7 Июль 9, 2018 18:05:43

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

PEHDOM
r находится в скрипте(модуле) питона
#-*- coding тралял
import туту

r = ()

на шаблоне окна,созданного в Qt5 Desiner, есть SpinBox его значение(ввели или накликали по стрелочкам значение) и передать в r.
сам код передачи значения в переменную в классе мэйнвиндоу или в функции str или Stop! если в классе то я думаю надо прописать на клик а если в функции то он и так присвоит!?!

Офлайн

#8 Июль 9, 2018 21:42:38

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

мне кажется или с lineEdit попроще будеет?

Офлайн

#9 Июль 10, 2018 10:11:14

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#10 Июль 10, 2018 22:32:41

Venus
Зарегистрирован: 2017-05-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

QSpinBox Qt5 передача значения в питон

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

Офлайн

  • Начало
  • » GUI
  • » QSpinBox Qt5 передача значения в питон[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version