Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.71 KB | None | 0 0
  1. import time
  2. import random
  3. from PySide.QtCore import QObject, QThread, Signal, QFile, QTimer, Qt
  4. from PySide.QtGui import QGroupBox, QGridLayout, QTextEdit, QApplication
  5. from PySide.QtUiTools import QUiLoader
  6.  
  7.  
  8. class Worker(QThread):
  9.     def __init__(self, url, *args, **kwargs):
  10.         super().__init__(*args, **kwargs)
  11.         self.trades = 'NODATA'
  12.         self.posts = 'NODATA'
  13.         self.url = url
  14.         self.start()
  15.  
  16.     def run(self):
  17.         time.sleep(random.random() * 2)
  18.         self.trades = str(random.random() * 25)
  19.         self.posts = str(random.random() * 100)
  20.         return self
  21.  
  22.  
  23. class Outpost(QObject):
  24.     finished = Signal(Worker)
  25.  
  26.     def __init__(self, id64, *args, **kwargs):
  27.         super().__init__(*args, **kwargs)
  28.         worker = Worker('http://www.tf2outpost.com/user/' + id64)
  29.         self.trades = worker.trades
  30.         self.posts = worker.posts
  31.         self.finished.emit()
  32.         self.finished.connect(worker.quit)
  33.  
  34.  
  35. def loadui(file_name):
  36.     loader = QUiLoader()
  37.     uifile = QFile(file_name)
  38.     uifile.open(QFile.ReadOnly)
  39.     ui = loader.load(uifile)
  40.     uifile.close()
  41.     return ui
  42.  
  43.  
  44. def create_topic(data):
  45.     box = QGroupBox()
  46.     grid = QGridLayout()
  47.     nickname = QTextEdit()
  48.  
  49.     box.setFixedHeight(200)
  50.     nickname.setText(data)
  51.  
  52.     grid.addWidget(nickname)
  53.     box.setLayout(grid)
  54.  
  55.     return box
  56.  
  57.  
  58. if __name__ == "__main__":
  59.     import sys
  60.  
  61.     app = QApplication(sys.argv)
  62.     MainWindow = loadui("main.ui")
  63.     MainWindow.vlay.setAlignment(Qt.AlignTop)
  64.     timer = QTimer()
  65.     timer.start(5000)
  66.  
  67.     def create(outpost):
  68.         widg = create_topic(outpost.trades + " : " + outpost.posts)
  69.         MainWindow.vlay.addWidget(widg)
  70.  
  71.     def output_slot():
  72.         outpost = Outpost('123')
  73.         outpost.finished.connect(create(outpost))
  74.  
  75.     timer.timeout.connect(output_slot)
  76.  
  77.     MainWindow.show()
  78.     app.exec_()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement