from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout, \\
QLabel, QPushButton, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import Qt
import sys
import json
import requests # 모듈이 없으실 경우 pip3 install requests
class 표위젯(QWidget):
def __init__(self):
super().__init__()
self.UI초기화()
def UI초기화(self):
self.table = QTableWidget(150, 5, self)
header = ['종목', '전일 종가', '변동가', '변동률', '시가']
bithumbUrl = '<https://api.bithumb.com/public/ticker/ALL_KRW>'
# 빗썸 오픈 API : <https://apidocs.bithumb.com/docs/ticker> 참고
data = json.loads(requests.get(bithumbUrl).text)
# print(data)
for index, coin in enumerate(data['data']):
if coin == 'date':
break
self.table.setItem(index, 0, QTableWidgetItem(coin))
self.table.setItem(index, 1, QTableWidgetItem(data['data']\\
[coin]['prev_closing_price']+'원'))
self.table.setItem(index, 2, QTableWidgetItem(data['data']\\
[coin]['fluctate_24H']+'원'))
self.table.setItem(index, 3, QTableWidgetItem(data['data']\\
[coin]['fluctate_rate_24H']+" %"))
self.table.setItem(index, 4, QTableWidgetItem(data['data']\\
[coin]['opening_price']+"원"))
self.table.setHorizontalHeaderLabels(header)
self.table.cellClicked.connect(self.showCellPosition)
self.label = QLabel()
vbox = QVBoxLayout()
vbox.addWidget(self.table)
vbox.addWidget(self.label, alignment=Qt.AlignCenter)
self.setLayout(vbox)
self.setWindowTitle('QTableWidget')
self.setGeometry(300, 300, 720, 500)
self.show()
def showCellPosition(self):
행 = self.table.currentColumn()
열 = self.table.currentRow()
self.label.setText(f'{행} 행, {열} 열입니다.')
프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 표위젯()
프로그램무한반복.exec_()
빗썸API를 활용해 표를 만들어 보도록 하겠습니다.
import json
import requests
빗썸 API와 통신하기 위해 requests를 사용하고 받아온 Data를 json형태로 다룸
requests에 대한 내용 30분 크롤링 요약강좌를 아래 넣어두었으니 참고하세요.
self.table = QTableWidget(150, 5, self)
header = ['종목', '전일 종가', '변동가', '변동률', '시가']
BithumbUrl = '<https://api.bithumb.com/public/ticker/ALL_KRW>'
data = json.loads(requests.get(BithumbUrl).text)
for index, coin in enumerate(data['data']):
if coin == "date":
break
self.table.setItem(index, 0, QTableWidgetItem(coin))
self.table.setItem(index, 1, QTableWidgetItem(
data['data'][coin]['prev_closing_price']+'원'))
self.table.setItem(index, 2, QTableWidgetItem(
data['data'][coin]['fluctate_24H']+'원'))
self.table.setItem(index, 3, QTableWidgetItem(
data['data'][coin]['fluctate_rate_24H']+" %"))
self.table.setItem(index, 4, QTableWidgetItem(
data['data'][coin]['opening_price']+"원"))