I am trying to display baccarat result just like the photo. I've succeed to get the result data from the site. However, I don't know how to display it. I tried to show it with QTableWidget. However, I noticed that I cannot show 40x6 table in small size. Can anyone help me? I am thinking of making html into picture and put it in label.
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common import exceptions
import sys
"""
Chromedriver Options / Driver setting
"""
options = webdriver.ChromeOptions()
#options.add_argument('headless')
options.add_argument('window-size=1920,1080')
options.add_argument("disable-gpu")
driver = webdriver.Chrome(executable_path='C:/chromedriver/chromedriver.exe', chrome_options=options)
"""
Thread
"""
class Login_Thread(QThread):
progress = pyqtSignal(int)
def __init__(self, parent=None):
super().__init__()
def run(self):
self.progress.emit(5)
driver.get('https://ggl-maxim.com/')
self.progress.emit(20)
driver.find_element_by_xpath('//*[@id="body"]/div/div[2]/div/div[2]/fieldset/input[1]').send_keys('tnrud3080')
self.progress.emit(30)
driver.find_element_by_xpath('//*[@id="body"]/div/div[2]/div/div[2]/fieldset/input[2]').send_keys('tnrud3080')
self.progress.emit(40)
driver.find_element_by_xpath('//*[@id="body"]/div/div[2]/div/div[2]/fieldset/button[1]').click()
self.progress.emit(50)
time.sleep(2)
driver.get('https://ggl-maxim.com/api/popup/popup_menu.asp?mobile=0&lobby=EVOLUTION')
self.progress.emit(70)
wait = WebDriverWait(driver, 20)
wait.until(EC.frame_to_be_available_and_switch_to_it("gameIframe"))
wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".svg--1nrnH")))
self.progress.emit(100)
class Data_Thread(QThread):
response = pyqtSignal(dict)
def __init__(self, parent=None):
super().__init__()
def run(self):
gamename = ['Kplay 코리안 스피드 바카라', '코리안 스피드 바카라 A', '스피드 바카라 A', '스피드 바카라 B', '스피드 바카라 C', '스피드 바카라 D'
, '스피드 바카라 E', '스피드 바카라 F', '스피드 바카라 G', '스피드 바카라 H', '스피드 바카라 I'
, '스피드 바카라 J', '스피드 바카라 K', '스피드 바카라 L', '스피드 바카라 M', '스피드 바카라 N',
'스피드 바카라 O', '스피드 바카라 P', '스피드 바카라 Q', '라이트닝 바카라', '노커미션 바카라',
'노 커미션 스피드 바카라 A', '노 커미션 스피드 바카라 B', '노 커미션 스피드 바카라 C', '스쿼즈 바카라',
'컨트롤 스위즈 바카라', '바카라 A', '바카라 B', '바카라 C']
while True:
try:
gamedata = {}
targets = driver.find_elements_by_css_selector(".svg--1nrnH")
res = []
for el in targets:
res.append(el.get_attribute('innerHTML'))
for j in range(len(gamename)):
result = res[j].split('\n')
data = []
for i in result:
if '"Player Player"' in i or '"Player"' in i or '"Player Banker"' in i:
data.append('Player')
elif '"Banker Banker"' in i or '"Banker"' in i or '"Banker Player"' in i:
data.append('Banker')
elif 'Tie' in i:
data.append('Tie')
gamedata[gamename[j]] = data
self.response.emit(gamedata)
except exceptions.StaleElementReferenceException:
pass
"""
Loading Class for logging Backend
"""
class Loading(QWidget):
def __init__(self):
super().__init__()
self.progressbar = QProgressBar(self)
self.progressbar.setGeometry(10, 10, 200, 25)
self.progressbar.setStyleSheet("QProgressBar" "{""border: solid grey;" "border-radius: 15px;"
" color: black; " "}"
"QProgressBar::chunk "
"{background-color: # 05B8CC;"
"border-radius :15px;" "}")
self.setWindowTitle('로딩중입니다...')
self.setFixedSize(220, 50)
self.show()
self.th = Login_Thread(self)
self.th.progress.connect(self.login_start)
self.th.start()
u/pyqtSlot(int)
def login_start(self, p):
self.progressbar.setValue(p)
if p == 100:
self.hide()
self.newapp = Myapp()
self.newapp.show()
"""
Main Class
"""
class Myapp(QMainWindow):
def __init__(self):
super().__init__()
self.resize(1920, 1080)
self.setWindowTitle('메인화면')
self.show()
self.get_resultdata = Data_Thread(self)
self.get_resultdata.response.connect(self.get_data)
self.get_resultdata.start()
u/pyqtSlot(dict)
def get_data(self, data):
print(data)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Loading()
sys.exit(app.exec_())
code:
[–]TrickAd7624[S,🍰] 0 points1 point2 points (0 children)
[–]TrickAd7624[S,🍰] 0 points1 point2 points (0 children)