[Python] 纯文本查看 复制代码import sys,mainInterface,requests,os,SquadList,strategyForm,souPaiJieZou,zhengrongZWForm
from PyQt5.QtWidgets import QApplication,QMainWindow,QVBoxLayout,QLabel,QFrame,QAbstractItemView,QTableWidgetItem,QWidget
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QCursor,QPixmap,QImage
from TFT import TFT
from NaiPai import AutoOPlayingChess,regDM,unRegDM
import threading
def buttonClick():
#取出对象mainWindow.sender()
if mainWindow.sender().text()==’官方阵容’:
if squadList.isVisible():
squadList.setVisible(False)
else:
squadList.setVisible(True)
if squadListUI.tabZhengR.rowCount() ==0:
squadList.show() # 显示
loadingList()
if mainWindow.sender().text()==’关闭’:
mainWindow.close()
squadList.close()
straForm.close()
spjzFrom.close()
zrzwFrom.close()
print(‘单击了’,mainWindow.sender().text())
def tablistClick():
global dangqianData,spjzFrom,zrzwFrom
row = squadListUI.tabZhengR.selectedItems()[0].row()
dangqianData=strategyS[row]
if spjzFrom != ”:
spjzFrom.setVisible(False)
showZhengRongZW(True)
def loadingList():
squadListUI.tabZhengR.setRowCount(len(list))
squadListUI.tabZhengR.setColumnCount(11)
squadListUI.tabZhengR.setEditTriggers(QAbstractItemView.NoEditTriggers)
# 整行选择
squadListUI.tabZhengR.setSelectionBehavior(QAbstractItemView.SelectRows)
# 水平表格头显示和隐藏
squadListUI.tabZhengR.horizontalHeader().setVisible(False)
# 垂直表格头显示和隐藏
squadListUI.tabZhengR.verticalHeader().setVisible(False)
for i,item in enumerate(list):
strategy = tft.get_strategy(item[‘line_id’])
strategyS.append(strategy)
# 设置阵容强度
tphot = QLabel()
tphot.setAlignment(Qt.AlignCenter)
tphot.setStyleSheet(”’
background-image: url(data/hot.png);
color: #98794C;
font-size:28px;
font:微软雅黑;
padding: 1px;
background-position:center;
”’)
tphot.setText(item[‘quality’])
tphot.setAlignment(Qt.AlignCenter)
squadListUI.tabZhengR.setCellWidget(i, 0, tphot)
# 设置阵容名
tabItem = QTableWidgetItem(item[‘line_name’])
squadListUI.tabZhengR.setItem(i, 1, tabItem)
hero_location=strategy[‘hero_location’]
level_3_heros=strategy[‘level_3_heros’]
for j,heroitem in enumerate(hero_location):
chessData = chessId_get_data(chess, heroitem[‘hero_id’])
tpgFrame= QFrame()
if ‘isChosenHero’ in heroitem:
if heroitem[‘isChosenHero’]!=None:
tpgFrame.setObjectName(‘tpgFrame’)
tpgFrame.setStyleSheet(”’
#tpgFrame{
border: 1px solid #DF8AE7;
border-radius: 5px;
}”’)
vbox = QVBoxLayout()
tp = QLabel(tpgFrame)
if heroitem[‘hero_id’] in level_3_heros:
tp.setText(‘★★★’)
tphot.setAlignment(Qt.AlignCenter)
tp.setStyleSheet(”’
margin: 1px;
color: #FDBC03;
font-size:12px;
font:微软雅黑;
”’)
tp.setMaximumSize(42, 12)
tp.setMinimumSize(42, 12)
tphot.setAlignment(Qt.AlignCenter)
tp1 = QLabel(tpgFrame)
tp1.setMaximumSize(42, 42)
tp1.setMinimumSize(42, 42)
#让图像适应标签
tp1.setScaledContents(True)
if chessData[“price”] ==’1′:
color = ‘#989898’
elif chessData[“price”] ==’2′:
color = ‘#58B137’
elif chessData[“price”] ==’3′:
color = ‘#3678C8’
elif chessData[“price”] ==’4′:
color = ‘#C81FC8’
else:
color = ‘#FDBC03’
tp1.setStyleSheet(f”’
margin: 1px;
border: 1px solid {color};
border-radius: 10px;
”’)
chessPath = f”data/chess/{chessData[‘name’]}”
try:
with open(chessPath, ‘rb’)as f:
img = QImage.fromData(f.read())
tp1.setPixmap(QPixmap.fromImage(img))
except:
url = f”https://game.gtimg.cn/images/lol/act/img/tft/champions/{chessData[‘name’]}”
res = requests.get(url)
img = QImage.fromData(res.content)
tp1.setPixmap(QPixmap.fromImage(img))
with open(chessPath, ‘wb’)as f:
f.write(res.content)
vbox.addWidget(tp)
vbox.addWidget(tp1)
vbox.setContentsMargins(1,0,1,1)
#控件间距
vbox.setSpacing(1)
tpgFrame.setLayout(vbox)
squadListUI.tabZhengR.setCellWidget(i, 2 + j, tpgFrame)
# 行列大小根据内容调整大小
squadListUI.tabZhengR.resizeRowsToContents()
squadListUI.tabZhengR.resizeColumnsToContents()
def mainWindowInitialize():
”’
界面初始化
:return:
”’
mainWindow.move(0, 0)
ui.horizontalLayout.setContentsMargins(0,0,1,0)
mainWindow.resize(566, 40)
mainWindow.setWindowFlags(Qt.WindowMaximizeButtonHint | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
#绑定事件
ui.pushButton.clicked.connect(buttonClick)
ui.pushButton_2.clicked.connect(buttonClick)
ui.pushButton_3.clicked.connect(buttonClick)
ui.pushButton_4.clicked.connect(buttonClick)
ui.pushButton_5.clicked.connect(buttonClick)
path = ‘data/chess/’
if os.path.isdir(path) == False:
os.makedirs(path)
path = ‘data/equip/’
if os.path.isdir(path) == False:
os.makedirs(path)
def squadListInitialize():
”’
界面初始化
:return:
”’
# 加载官方列表
squadList.resize(800, 240)
squadListUI.verticalLayout.setContentsMargins(1, 0, 0, 1)
squadList.move(0, mainWindow.geometry().height()-3)
squadList.setWindowFlags(Qt.WindowMaximizeButtonHint | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
squadListUI.tabZhengR.clicked.connect(tablistClick)
def straFormInitialize():
# 加载攻略栏目
straForm.move(app.desktop().screenGeometry().width()-straForm.geometry().width(), 0)
straForm.setWindowFlags(Qt.WindowMaximizeButtonHint | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
#绑定栏目按钮功能
straFormUI.pushButton_5.clicked.connect(showShouPaiJieZou)
straFormUI.pushButton_4.clicked.connect(showZhengRongZW)
straFormUI.pushButton.clicked.connect(updataAutoChess)
def showShouPaiJieZou():
global spjzFrom
# ———-搜牌节奏-克制分析——————
if spjzFrom!=”:
if spjzFrom.isVisible() :
spjzFrom.setVisible(False)
return
if dangqianData!=”:
spjzFrom = souPaiJieZou.SoPaiJieZou(dangqianData)
spjzFrom.setWindowFlags(Qt.WindowMaximizeButtonHint | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
spjzFrom.show()
spjzFrom.move(app.desktop().screenGeometry().width() – spjzFrom.geometry().width(),straForm.geometry().height() – 3)
def showZhengRongZW(kg=False):
global zrzwFrom,chess
# ———-阵容站位——————
if kg!=True:
if zrzwFrom != ”:
if zrzwFrom.isVisible():
zrzwFrom.setVisible(False)
return
if dangqianData!=”:
zrzwFrom = zhengrongZWForm.ZhengRongZW(dangqianData,chess)
zrzwFrom.setWindowFlags(Qt.WindowMaximizeButtonHint | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
zrzwFrom.show()
zrzwFrom.move(app.desktop().screenGeometry().width() – zrzwFrom.geometry().width(),straForm.geometry().height() – 3)
def chessId_get_data(chess, hero_id):
”’
根据棋子的id返回棋子数据
:param chess:
:param hero_id:
:return:
”’
for n in range(len(chess)):
if hero_id == chess[n][‘chessId’]:
return chess[n]
def updataAutoChess():
global atpc,chess
chessList = [] # 模拟选中的棋子池,没界面模拟一下
if dangqianData!=”:
hero_location=dangqianData[‘hero_location’]
for item in hero_location:
#print(item)
#获取棋子名称
chessDATA= chessId_get_data(chess,item[‘hero_id’])
chessList.append(chessDATA[‘title’])
if len(chess)>0:
# 将需要购买的棋子放入池子中
atpc.chess=chessList
print(‘目前的自动列表:’,atpc.chess)
if __name__==’__main__’:
dangqianData=”
spjzFrom = ”
zrzwFrom = ”
# 创建一个QApplication类的实例
app=QApplication(sys.argv)
#———-mainwindow——————
mainWindow=QMainWindow()#创建一个界面
ui=mainInterface.Ui_MainWindow()#实例化ui界面对象
ui.setupUi(mainWindow)#运行里面的代码
mainWindowInitialize() #初始化赋值
mainWindow.show() #显示
# ———-strategyForm——————
straForm = QWidget() # 创建一个界面
straFormUI = strategyForm.Ui_strategyForm() # 实例化ui界面对象
straFormUI.setupUi(straForm) # 运行里面的代码
straFormInitialize() # 初始化赋值
straForm.show() # 显示
#————squadList——————–
squadList = QWidget()
squadListUI = SquadList.Ui_SquadFrom()
squadListUI.setupUi(squadList)
squadListInitialize()
tft = TFT()
# 可以使用print(列表名)打印数据
chess = tft.get_chess() # 获取所有的棋子数据 返回一个列表
equip = tft.get_equip() # 获取所有的装备数据 返回一个列表
job = tft.get_job() # 获取所有的职业数据 返回一个列表
race = tft.get_race() # 获取所有的羁绊数据 返回一个列表
list = tft.get_linelist()
strategyS=[]
#自动拿牌——————-
# 初始化必要数据
reg_code = “luxiaolan63735f4be12fda045a12cf1b2927d5cbc19c” # 大漠后台的注册码
ver_info = ‘www.52pojie.cn’ # 附加信息,主要用于查询消费情况 填了更好查询,不填也无所谓
dictPath = ‘1920.txt’ # 字库路径
processName = ‘League of Legends.exe’ # 进程名
# —————————————————————————-
# 创建自动购买棋子对象
atpc = AutoOPlayingChess()
# 登录大漠,免费版的大漠就可以省略这一步
value = atpc.dmReg(reg_code, ver_info)
# 设置好字库和配置
atpc.SetDict(dictPath)
# 判断是否登录成功
if value == 1: # 免费版的就不要这个if了
print(f’验证成功!’)# 接下来就可以自己查接口说明来使用里面的全部方法了
# 启动自动购买棋子程序线程
t = threading.Thread( target=atpc.startAuto)
t.setDaemon(True)
t.start()
else:
if value == -2:
print(‘进程没有以管理员方式运行或者被第三方杀毒拦截. (建议关闭uac和杀毒软件),请用管理员权限运行本程序!’)
else:
print(f’验证失败,失败代码为:{value},大概率是被杀毒拦截了!’)
#进入程序主循环,并通过exit函数确保主循环安全结束
sys.exit(app.exec_())
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208951 人正在系统学习中 相关资源:轮盘赌算法matlab程序及介绍-Matlab文档类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!