Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 15, 2019 15:44:42

lefmails
Зарегистрирован: 2019-04-15
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Обмен данных между классами QT4 Py2.7.15

Добрый день!
(QT4 Py2.7.15)
Прошу подсказать
Есть главная форма, на которой создаются компоненты.
Есть LAbel в которой выводятся данные.
Подскажите как мне из таймера передать в label данные, не получается.
Вот одна из моих попыток:


 class config:
    def clk(self):
        global t1
        t1=5000
        t2=50
        t3=50
        t4=50
        t_ul=50
        regim=0      
        print(str(t1))
        self.init1= _init_()
        self.init1.label.setText('ff')
class _init_(QtGui.QWidget):    
    def __init__(self, parent=None):
        def on_click():		
            global t1, T
            T = t1
            cfg = config()
            cfg.clk()            
            label_T1.setText(str(t1))       
        QtGui.QWidget.__init__(self, parent)    
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('T')
        self.setMinimumSize(480, 354 )
        self.setMaximumSize(480, 354 )
        self.setWindowState(Qt.WindowMaximized)
class _init_(QtGui.QWidget):    
    def __init__(self, parent=None):
        def on_click():		
            global t1, T
            T = t1
            cfg = config()
            cfg.clk()            
            label_T1.setText(str(t1))
            label_T.setText(str(T))
          
        QtGui.QWidget.__init__(self, parent)    
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('TERMICHKA')
        self.setMinimumSize(480, 354 )
        self.setMaximumSize(480, 354 )
        self.setWindowState(Qt.WindowMaximized)
        
        label_T1 = QtGui.QLabel('s', self)
        label_T1.setGeometry(190, 74, 45, 20)
        label_T1.setStyleSheet(QString("font-size: %1px").arg(18))
app = QtGui.QApplication(sys.argv)
	
#---------------
cfg = config()
timer = QtCore.QTimer()
timer.connect(timer, QtCore.SIGNAL('timeout()'), lambda: cfg.change_label(label))
timer.start(1000)
#------------------------------------------------------
qb = _init_()
qb.show()
sys.exit(app.exec_())

Отредактировано lefmails (Апрель 15, 2019 15:55:09)

Офлайн

#2 Апрель 16, 2019 10:22:04

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

Обмен данных между классами QT4 Py2.7.15

lefmails читая ваш код у меня возникает когнитивный диссонас
гапример вот это

lefmails
Py2.7.15
вступает в конфликт с вот этим
lefmails
print(str(t1))
lefmails
Вот одна из моих попыток:
это не попытка это содомия какаято:
У вас зачемто два класса _init_() , тоесть второй перекрывает первый. Называть классы так некошерно, есть определенные правила, и лучше им следовать.
А вот это вообще за гранью добра и зла
   
...
          global t1, T
            T = t1
...
тут вообще работать ничего не будет
 lambda: cfg.change_label(label)
потому что у вашего класса config нет метода change_label а глобальная переменная label не определена
lefmails
Подскажите как мне из таймера передать в label данные, не получается.
и не получиться, таймер не передает никаких данных, он просто дергает метод с заданым интервалом.
И какие данные вы хотите передавать из таймера?
 from PyQt4 import QtGui, QtCore
class TestWidget(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('TERMICHKA')
        self.setMinimumSize(480, 354 )
        self.setMaximumSize(480, 354 )
        self.setWindowState(QtCore.Qt.WindowMaximized)
        self.label_T1 = QtGui.QLabel('s', self)
        self.label_T1.setGeometry(190, 74, 45, 20)
        self.counter = 0
    def update_label(self):
        self.counter += 1
        self.label_T1.setText(str(self.counter))
if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    qb = TestWidget()
    qb.show()
    timer = QtCore.QTimer()
    timer.timeout.connect(qb.update_label)
    timer.start(1000)
    sys.exit(app.exec_())



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

Отредактировано PEHDOM (Апрель 16, 2019 10:28:33)

Офлайн

#3 Апрель 16, 2019 15:33:07

lefmails
Зарегистрирован: 2019-04-15
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Обмен данных между классами QT4 Py2.7.15

PEHDOM Супер! спасибо!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version