Actions
At 빗썸 개요창¶
소스코드¶
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtCore import Qt, QThread, pyqtSignal
from pybithumb import WebSocketManager
class OverViewWorker(QThread):
dataMidSent = pyqtSignal(int, float, float)
data24Sent = pyqtSignal(float, int, float, int, int)
def __init__(self, ticker):
super().__init__()
self.ticker = ticker
self.alive = True
def run(self):
wm = WebSocketManager("ticker", [f"{self.ticker}_KRW"], ["24H", "MID"])
while self.alive:
data = wm.get()
if data['content']['tickType'] == "MID":
self.dataMidSent.emit(int(data['content']['closePrice']),
float(data['content']['chgRate']),
float(data['content']['volumePower']))
else :
self.data24Sent.emit(float(data['content']['volume']),
int(data['content']['highPrice']),
float(data['content']['value']),
int(data['content']['lowPrice']),
int(data['content']['prevClosePrice']))
wm.terminate() # 해당코드가 없으면 종료가 제대로 이루어지지않음.
def close(self):
self.alive = False
class OverviewWidget(QWidget):
def __init__(self, parent=None, ticker="BTC"):
super().__init__(parent)
uic.loadUi("resource/overview.ui", self)
self.setWindowTitle("실시간 개요창")
self.ticker = ticker
self.label_3.setText("거래량(24H)")
self.label_5.setText("고가(당일)")
self.label_7.setText("거래금액(24H)")
self.label_9.setText("저가(당일)")
self.label_11.setText("채결강도(24H)")
self.label_13.setText("전일종가")
self.ovw = OverViewWorker(ticker)
self.ovw.dataMidSent.connect(self.fillMidData)
self.ovw.data24Sent.connect(self.fill24Data)
self.ovw.start()
def closeEvent(self, event):
self.ovw.close()
def fillMidData(self, currPrice, chgRate, volumePower):
self.label_1.setText(f"{currPrice:,}")
self.label_2.setText(f"{chgRate:+.2f}%")
self.label_12.setText(f"{volumePower:.2f}%")
self.__updateStyle()
def fill24Data(self, volume, highPrice, value, lowPrice, prevClosePrice):
self.label_4.setText(f"{volume:,.4f} {self.ticker}")
self.label_6.setText(f"{highPrice:,}")
self.label_8.setText(f"{value/100000000:,.1f} 억")
self.label_10.setText(f"{lowPrice:,}")
self.label_14.setText(f"{prevClosePrice:,}")
self.__updateStyle()
def __updateStyle(self):
if '-' in self.label_2.text():
self.label_1.setStyleSheet("color:blue;")
self.label_2.setStyleSheet("background-color:blue;color:white")
else:
self.label_1.setStyleSheet("color:red;")
self.label_2.setStyleSheet("background-color:red;color:white")
if __name__ == "__main__":
app = QApplication(sys.argv)
ob = OverviewWidget()
ob.show()
exit(app.exec_())
결과¶

이태훈이(가) 10달 전에 변경 · 1 revisions