Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import random
- from PySide.QtCore import QObject, QThread, Signal, QFile, QTimer, Qt
- from PySide.QtGui import QGroupBox, QGridLayout, QTextEdit, QApplication
- from PySide.QtUiTools import QUiLoader
- class Worker(QThread):
- def __init__(self, url, *args, **kwargs):
- super().__init__(*args, **kwargs)
- self.trades = 'NODATA'
- self.posts = 'NODATA'
- self.url = url
- self.start()
- def run(self):
- time.sleep(random.random() * 2)
- self.trades = str(random.random() * 25)
- self.posts = str(random.random() * 100)
- return self
- class Outpost(QObject):
- finished = Signal(Worker)
- def __init__(self, id64, *args, **kwargs):
- super().__init__(*args, **kwargs)
- worker = Worker('http://www.tf2outpost.com/user/' + id64)
- self.trades = worker.trades
- self.posts = worker.posts
- self.finished.emit()
- self.finished.connect(worker.quit)
- def loadui(file_name):
- loader = QUiLoader()
- uifile = QFile(file_name)
- uifile.open(QFile.ReadOnly)
- ui = loader.load(uifile)
- uifile.close()
- return ui
- def create_topic(data):
- box = QGroupBox()
- grid = QGridLayout()
- nickname = QTextEdit()
- box.setFixedHeight(200)
- nickname.setText(data)
- grid.addWidget(nickname)
- box.setLayout(grid)
- return box
- if __name__ == "__main__":
- import sys
- app = QApplication(sys.argv)
- MainWindow = loadui("main.ui")
- MainWindow.vlay.setAlignment(Qt.AlignTop)
- timer = QTimer()
- timer.start(5000)
- def create(outpost):
- widg = create_topic(outpost.trades + " : " + outpost.posts)
- MainWindow.vlay.addWidget(widg)
- def output_slot():
- outpost = Outpost('123')
- outpost.finished.connect(create(outpost))
- timer.timeout.connect(output_slot)
- MainWindow.show()
- app.exec_()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement