次のコードは、1つの無作為な行を1秒ごとに描画します。私がしたいのは、それぞれの線を既に描画しておくことです。それをする最善の方法は何ですか?PyQT5 - 一時停止を使用して行を1つずつ追加する
私は
たぶん一つの方法は、隠されたすべての線を描画するだろう...私は応答性の高いユーザーインターフェースを行うためにQTimer
を使用する必要がありますが、最初、私はより多くの線を描画する方法を知っておく必要があることを知っていて、より多くの行を表示する...または私はQGraphicsView
を使用する必要がありますか? PyQtはアプリケーションでtime.sleep
を使用して
from random import random
import sys
from time import sleep
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter
from PyQt5.QtCore import QTimer
LINES = [
(500*random(), 500*random(), 500*random(), 500*random())
for _ in range(50)
]
class Interface(QWidget):
def __init__(self):
super().__init__()
self.max = len(LINES)
self.cursor = 0
self.painter = QPainter()
self.setFixedSize(500, 500)
self.show()
def paintEvent(self, e):
self.painter.begin(self)
self.drawsetpbystep()
self.painter.end()
def drawsetpbystep(self):
if self.cursor < self.max:
self.painter.drawLine(*LINES[self.cursor])
self.update()
sleep(0.25)
self.cursor += 1
if __name__ == '__main__':
app = QApplication(sys.argv)
interface = Interface()
sys.exit(app.exec_())
何を解決しようとしましたかそれ?あなたはすでにSOがコーディングサービスではないことを知るには十分な評判を持っています。 – eyllanesc
@eyllanesc質問が更新されました。 – projetmbc