日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【PYQT】制作可以显示图片的抽卡模拟器

發布時間:2024/1/1 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【PYQT】制作可以显示图片的抽卡模拟器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、前置操作
  • 二、操作步驟
    • 1.qt繪制模擬器界面并轉換為py文件
    • 2.在項目文件夾加入數據文件
    • 3.新建一個py文件進行操作界面
  • 三.測試程序
  • 總結


前言

記錄自己學習pyqt制作抽卡模擬器(簡易)的過程。
抽卡規則基于賽馬娘。
實現了一連抽和十連抽的功能,保底功能,十連抽必出sr功能,抽出ssr顯示圖片功能,
以及貨幣不足提示功能

一、前置操作

默認安裝好了qt designer以及和python的環境配置:
需要安裝的python包:
pyqt5
如若需要打包成exe文件(不推薦)
則需要安裝pyinstaller包
本人是通過vscode編寫py文件的,預先安裝了插件:PYQT Integration,便于轉換ui文件為py文件,以及快捷的打開qt designer編輯窗體。
不過,不使用vscode,通過控制臺代碼轉換ui文件也是可行的。

二、操作步驟

1.qt繪制模擬器界面并轉換為py文件

qt designer的基本使用方法可以參考這里:
https://www.cnblogs.com/linyfeng/p/11223707.html
個人簡單繪畫了一個界面

注意需要對每個控件重命名,方便之后在程序中調用。(不改名無法調用,同時也不好分辨)
下面是我本人對控件的命名
其中涉及了用標簽顯示圖片,有兩個標簽控件因為是空白未在上圖顯示

自定義界面后保存,得到一個ui后綴的文件
用vscode打開剛才保存位置的文件夾,右鍵文件“PYQT:Compile Form”轉換為py文件。

如果轉換出現問題,可以嘗試在vscode里點擊“文件->首選項->設置”,搜索pyqt,設置插件。
我的設置如下

第一個框為你的pyuic.5文件的位置,如果python不是用的anaconda則需要自己找到文件位置填入
第二個框“-x”表示轉換后的py文件自帶把窗體顯示出來的函數,不用手動輸入
第三個框默認為此
第四個框為你qt designer的位置,需要自己編輯

2.在項目文件夾加入數據文件

新建一個txt文件填入卡池內容
本人新建了一個data.txt文件,隨便填寫數據即可,本人設置了42行數據,對應代碼中數組的大小。

注意要修改txt文本的編碼為ANSI,否則讀取會出問題。

同時放入抽出ssr卡需要顯示的圖片,并重命名方便在代碼中調用。

3.新建一個py文件進行操作界面

新建一個py文件和ui轉換后的py文件分開,可以方便修改方法和修改界面,不容易產生沖突。
如果需要修改界面,把修改后的ui文件再轉換為py文件覆蓋先前的即可。不會影響到操作函數。
新建文件命名為:“抽卡啟動器”。
代碼如下
添加信號和槽用函數連接剛才界面中創建的按鈕“一抽”和“十連”

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)

之后定義one和ten兩個函數就可以用按鈕實現定義的功能。
定義one函數,即“一抽”對應按鈕的函數

def one(self): name=self.textname.text() #讀取用戶名 a = self.textmoney.text() #讀取貨幣數量if(name==""):QMessageBox.critical(self, "錯誤", "請輸入用戶名", QMessageBox.Yes | QMessageBox.Yes) #判斷名字不為空elif(a==""):QMessageBox.critical(self, "錯誤", "請輸入貨幣數量", QMessageBox.Yes | QMessageBox.Yes) #判斷貨幣不為空elif(int(a)<150):self.result.setText("貨幣不足~")QMessageBox.critical(self, "錯誤", "貨幣不足", QMessageBox.Yes | QMessageBox.No)elif(int(a)>=150):data = []for line in open("data.txt","r"): #設置文件對象并讀取每一行文件data.append(line) #將每一行文件加入到list中 text=data[random.randint(0,41)]#改變保底次數countnum=self.count.text()if(int(countnum)-1>0):self.count.setText(str(int(countnum)-1))else:self.count.setText("100")text="SSR:【北部玄駒】"#設置SSR卡牌ssr1="SSR:【北部玄駒】"ssr2="SSR:【里見光鉆】"if(text==ssr1 ): jpg = QtGui.QPixmap("北黑").scaled(self.card.width(), self.card.height())self.card.setPixmap(jpg)self.ssrtext.setText("恭喜您抽到的SSR卡為:"+'\n'+"北部玄駒")elif(text==ssr2): 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("") #執行抽卡self.result.setText(text) b=int(a)-150self.textmoney.setText(str(b)) #一抽減少150貨幣。轉換為字符型填入money

定義 ten函數,即“十連”對應的按鈕。
此函數相較于one本質意思是一樣的不過進行了一些優化,方便閱讀一些。

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_())

如果在編碼中報錯,模塊導入失敗,可以在項目文件下新建一個.pylintrc文件,并且填入一下文字
把pyqt5加入白名單。

三.測試程序

在文件夾中雙擊“抽卡啟動器.py”運行模擬器。

不輸入貨幣數,出彈窗報錯

貨幣不足彈窗

普通的一抽

十連抽到ssr


總結

以上就是分享的內容,也是自我學習的記錄,很多還在摸索中,請多指教~

總結

以上是生活随笔為你收集整理的【PYQT】制作可以显示图片的抽卡模拟器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日草| 人人爽人人爽人人 | 精品少妇久久 | 男人天堂导航 | 国产熟女精品视频 | 国产日韩不卡 | 免费荫蒂添的好舒服视频 | 青青草国产在线播放 | av网站免费播放 | 国产美女免费网站 | 日本三级视频在线观看 | 17c在线视频 | 三级视频黄色 | 亚洲午夜小视频 | 少妇人禽zoz0伦视频 | 台湾黄色网址 | 国产精品suv一区二区 | gogo人体做爰大胆视频 | 91久久伊人| 91精品国产一区二区三区蜜臀 | 午夜精品小视频 | 日日夜夜免费精品视频 | 日本成人片网站 | 亚洲美女视频一区 | 长篇乱肉合集乱500小说日本 | 高hnp视频 | 91成人精品一区在线播放 | jzjzz成人免费视频 | 久久午夜夜伦鲁鲁片无码免费 | 欧美成人片在线观看 | 插插射射 | 人妻视频一区 | 国产在线高清视频 | 亚洲色图久久 | 在线观看黄网 | 国内精品嫩模av私拍在线观看 | 精品少妇人妻av一区二区三区 | 三级黄色在线 | 国内视频一区二区 | 欧美成人免费在线观看视频 | 雪花飘电影在线观看免费高清 | av在线不卡网站 | 黄色三级图片 | 亚洲爱v | 国产资源在线观看 | 性猛交xxxx乱大交孕妇2十 | 自拍偷拍在线视频 | 日韩精品中文字幕在线 | 天天做天天爽 | 国产成人精品综合在线观看 | 欧美xxx视频| 另类小说五月天 | 国产一区二区三区影视 | 天天摸天天做天天爽水多 | 国产又粗又黄视频 | www.射 | 在线观看香蕉视频 | 午夜h视频| 亚洲熟妇国产熟妇肥婆 | 自拍偷拍导航 | 国产一区中文字幕 | www四虎com | 涩涩av | 国产精品免费一区二区三区在线观看 | 亚洲欧美一区二区三区四区 | 懂色一区二区 | 华人在线视频 | www色亚洲| 日韩精品一区二区三区 | 色偷偷av| 久久黄色一级片 | 好吊色视频一区二区三区 | 日韩av首页 | 蜜桃成人在线视频 | 日本无遮挡边做边爱边摸 | 国产伦精品一区二区三区视频黑人 | 亚洲一区二区自拍 | 国产欧美一区二区精品久久久 | 91麻豆精品在线观看 | 男人添女人囗交视频 | 亚洲国产精品视频 | 99热激情 | 久久看片 | 国产一级二级三级视频 | 熟女少妇内射日韩亚洲 | 91爱爱影院 | 国产成人三级一区二区在线观看一 | 国模吧无码一区二区三区 | 丰满人妻熟女aⅴ一区 | 欧美,日韩,国产精品免费观看 | 秋霞午夜影院 | 久久精品这里只有精品 | 久久日本精品字幕区二区 | 日韩最新在线 | 在线免费观看国产精品 | 国产精品久久久久久久av | 欧美黄色大片在线观看 | 人人干人人爽 | 中文字幕日韩精品无码内射 |