Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 1, 2015 12:50:45

sovuschka
Зарегистрирован: 2015-03-16
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

LSDNumber

Есть на сайте такой вот пример

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider,
    QVBoxLayout, QApplication)
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        #lcd = QLCDNumber(self)
        lcd = QLCDNumber(6)
        sld = QSlider(Qt.Horizontal, self)
        vbox = QVBoxLayout()
        vbox.addWidget(lcd)
        vbox.addWidget(sld)
        
        self.setLayout(vbox)
        sld.valueChanged.connect(lcd.display)
        self.setGeometry(300, 300, 350, 150)
        self.setWindowTitle('Signal & slot')
        self.show()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
Мне понравился виджет дисплея, но вот беда.. а как передать ему число 20 например? или 105, так, чтоб не использовать scrolBar?

Отредактировано sovuschka (Апрель 1, 2015 12:53:22)

Офлайн

#2 Апрель 1, 2015 14:11:07

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

LSDNumber

lcd.display(3)



Офлайн

#3 Апрель 1, 2015 15:16:25

sovuschka
Зарегистрирован: 2015-03-16
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

LSDNumber

Красиво… но…
Вот что задумывалось

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import (Qt, QBasicTimer)
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider,
    QVBoxLayout, QLabel, QApplication)
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        #lcd = QLCDNumber(self)
        lcd = QLCDNumber(6)
        sld = QSlider(Qt.Horizontal, self)
        vbox = QVBoxLayout()
        vbox.addWidget(lcd)
        vbox.addWidget(sld)
        
        self.setLayout(vbox)
        #sld.valueChanged.connect(lcd.display)
        #lcd.display(3)                  # -  Вот это рабтает 
        self.lbl3 = QLabel(self) # метка значение горизонтальной прокрутки
        self.lbl3.move(50, 50)
        self.timer = QBasicTimer()
        self.timer.start(100, self)# сразу запускаю таймер не ждя кнопки частота 100 мСек
        self.step = 0              # начало отсчета 
        self.k3 = 1                # направление +1 или -1
        self.setGeometry(300, 300, 350, 150)
        self.setWindowTitle('Signal & slot')
        self.show()
    def timerEvent(self, e ):
        if  self.step == 0:
            self.k3 = 1
        elif self.step >= 100:
             self.k3 = -1
               
        self.step = self.step + self.k3
        self.lbl3.setText(str(self.step))# обновляем значение прокрутки в метке
        self.lbl3.adjustSize()
        lcd.display(6)       # - А вот ТУТ НЕТ
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())l
Там в корне оно работает но и код отрабатывает 1 раз
А вот в цикле таймера можно динамически каждые 100 милисек обновлять было бы но….

Отредактировано sovuschka (Апрель 1, 2015 15:17:32)

Офлайн

#4 Апрель 1, 2015 15:55:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

LSDNumber

Замени все lcd на self.lcd .



Офлайн

#5 Апрель 1, 2015 17:19:15

sovuschka
Зарегистрирован: 2015-03-16
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

LSDNumber

ЗАРАБОТАЛО!!!!!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version