日韩性视频-久久久蜜桃-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】制作可以显示图片的抽卡模拟器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 超级碰在线观看 | 国产色视频网站 | 国内一区二区三区 | 免费黄色网址在线 | 久久精彩免费视频 | 日韩在线视频在线观看 | 久久久久亚洲国产 | 国产aⅴ无码片毛片一级一区2 | 亚洲精品三区 | 国产成人无码aa精品一区 | 国产乱人对白 | 亚洲 欧美 日韩 国产综合 在线 | 亚洲人妻电影一区 | 国产女人水真多18毛片18精品 | 午夜不卡久久精品无码免费 | 久久中文网 | 极品探花在线观看 | 欧美a级成人淫片免费看 | 成人免费淫片aa视频免费 | 91爱 | jizzjizz欧美69巨大 | 一级片大片 | 在线香蕉| 九月色婷婷| 在线观看少妇 | 久久激情免费视频 | 午夜写真片福利电影网 | 久久精品—区二区三区舞蹈 | 午夜精品免费 | 狠狠干老司机 | 天堂网一区 | 99热最新网址 | 97爱视频| 国产原创一区 | 操韩国美女 | 黄色网炮 | 亚洲成人午夜在线 | 国模在线| 中文字幕一区二区三区久久久 | 日韩精品一区二区三区国语自制 | 激情视频激情小说 | 99在线视频精品 | 日本三级视频在线播放 | 久久久无码精品亚洲无少妇 | 超碰97国产 | 亚洲国产精品综合久久久 | 久久久久黄色 | 精品国产免费视频 | 久久免费视频精品 | 国产专区一区 | 国产精品18久久久久久无码 | 精品一区二区三区精华液 | 九九九色 | 亚洲高清免费视频 | 日本高清二区 | 久久久精品电影 | 97在线视频免费 | 乳揉みま痴汉4在线播放 | 国产又黄又爽视频 | 日韩经典av | 亚洲 在线 | 精久久久 | 国产盗摄一区二区 | 五月婷婷六月色 | www,久久久 | 亚洲黄网av | 精品国产乱码久久久人妻 | 精品无码久久久久久久久果冻 | 亚欧在线免费观看 | 男人天堂你懂的 | 蜜桃久久av | 中文字幕――色哟哟 | 久草在在线视频 | 欧美日韩一区不卡 | 91在线精品入口 | 无码人妻aⅴ一区二区三区69岛 | 久久久久久久久久久国产精品 | 无码人妻精品一区二区三区99v | 天天摸夜夜操 | 日日干日日射 | 长河落日 | 无码任你躁久久久久久老妇 | av电影在线观看不卡 | 色婷婷视频网 | 性高跟鞋xxxxhd人妖 | 免费中文字幕日韩 | 在线观看成人动漫 | 麻豆视频免费网站 | 亚洲精品中文字幕乱码无线 | 国产精品乱码久久久久久 | 一级视频免费观看 | 日韩精品一区二区在线 | 色吊妞| 中文一区二区在线播放 | 免费看的黄色 | 国产精品高清在线观看 | 国产婷婷色一区二区三区 | 欧美成年视频 | 色四虎|