import sys
import random
#PyQt5中使用的基本控件
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtWidgets import QMessageBox
from PyQt5 import QtGui
#導入designer工具
from Ui_抽卡系統 import*
class MyMainForm(QMainWindow, Ui_Form):def __init__(self, parent=None):super(MyMainForm, self).__init__(parent)self.setupUi(self)#修飾界面self.setWindowTitle("抽卡模擬器")#添加信號和槽。 self.getone.clicked.connect(self.one)self.getten.clicked.connect(self.ten)
def ten(self):name=self.textname.text() #讀取用戶名a = self.textmoney.text() #讀取貨幣數量data =[]for line in open("C:\Qt\項目\抽卡系統\data.txt","r"): #設置文件對象并讀取每一行文件data.append(line) #將每一行文件加入到list中 Text="" #設置最終輸出文本for i in range(9):text=data[random.randint(0,41)]Text=Text+text sr=data[random.randint(25,39)] Text=Text+sr if(name==""):QMessageBox.critical(self,"錯誤","請輸入用戶名", QMessageBox.Yes | QMessageBox.Yes) #判斷名字不為空elif(a==""):QMessageBox.critical(self,"錯誤","請輸入貨幣數量", QMessageBox.Yes | QMessageBox.Yes) #判斷貨幣不為空elif(int(a)<1500):self.result.setText("貨幣不足~")QMessageBox.critical(self,"錯誤","貨幣不足", QMessageBox.Yes | QMessageBox.No)elif(int(a)>=1500):self.result.setText(Text)b=int(a)-1500self.textmoney.setText(str(b)) #一抽減少1500貨幣。轉換為字符型填入money#改變保底次數countnum=self.count.text()if(int(countnum)-10>0):self.count.setText(str(int(countnum)-10))else:self.count.setText("100")Text=Text+'\n'+"SSR:【北部玄駒】"#設置SSR卡牌ssr1="SSR:【北部玄駒】"ssr2="SSR:【里見光鉆】"if(ssr1 in Text ): jpg = QtGui.QPixmap("北黑").scaled(self.card.width(), self.card.height())self.card.setPixmap(jpg)self.ssrtext.setText("恭喜您抽到的SSR卡為:"+'\n'+"北部玄駒")elif(ssr2 in Text): jpg = QtGui.QPixmap("光鉆").scaled(self.card.width(), self.card.height())self.card.setPixmap(jpg)self.ssrtext.setText("恭喜您抽到的SSR卡為:"+'\n'+"里見光鉆")else:self.ssrtext.setText("很遺憾您未抽到SSR卡") self.card.setText("")
隨后加上顯示界面的代碼就完成了
if __name__ =="__main__":#固定語句。sys.argv是命令行參數列表,確保程序可以雙擊運行app =QApplication(sys.argv)#初始化myWin =MyMainForm()#將窗口控件顯示在屏幕上myWin.show()#程序運行,sys.exit方法確保程序完整退出。sys.exit(app.exec_())