Найти - Пользователи
Полная версия: LSDNumber
Начало » Python для новичков » LSDNumber
1
sovuschka
Есть на сайте такой вот пример
#!/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?
py.user.next
lcd.display(3)
sovuschka
Красиво… но…
Вот что задумывалось
#!/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 милисек обновлять было бы но….
py.user.next
Замени все lcd на self.lcd .
sovuschka
ЗАРАБОТАЛО!!!!!
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