<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
開始之前,直接來看一下實現後的效果。想自己實現或者需要原始碼的童鞋直接進場...
將PyQt5的相關模組直接匯入即可。
from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import *
為了照顧一下新關注的童鞋,這裡介紹一下PyQt5的安裝,還是採用pip的安裝方式。
pip install PyQt5
將準備好的樣式匯入到程式碼塊中。
# 主題樣式模組參照 from QCandyUi import CandyWindow
檔案和亂數相關的模組匯入進來。
import sys import random
介面編寫函數 init_ui,初始化UI介面及頁面佈局程式碼塊。
def init_ui(self): self.setWindowTitle('猜數位遊戲 公眾號:[Python 集中營]') self.setWindowIcon(QIcon('數位.ico')) self.setFixedSize(500, 350) self.msg = QLabel() self.msg.setText('猜數位遊戲') self.msg.setStyleSheet( 'font-size:50px;text-align:center;font-weight:bold;font-family:"Microsoft JhengHei";') self.msg.setAlignment(Qt.AlignCenter) self.in_num = QLineEdit() self.in_num.setPlaceholderText('請輸入目標數位') self.in_num.setAlignment(Qt.AlignCenter) self.in_num_btn = QPushButton() self.in_num_btn.setText('就是它了') self.in_num_btn.clicked.connect(self.in_num_btn_click) self.tar_num_btn = QPushButton() self.tar_num_btn.setText('顯示數位') self.tar_num_btn.clicked.connect(self.tar_num_btn_click) self.tar_num = QLabel() self.tar_num.setText('#####') self.tar_num.setFixedWidth(50) self.generate_num_btn = QPushButton() self.generate_num_btn.setText(' 生成目標數位 ') self.generate_num_btn.clicked.connect(self.generate_num_btn_click) hbox = QHBoxLayout() hbox.addWidget(self.tar_num) hbox.addWidget(self.tar_num_btn) hbox.addStretch(1) hbox.addWidget(self.generate_num_btn) vbox = QVBoxLayout() vbox.addStretch(1) vbox.addWidget(self.msg) vbox.addWidget(self.in_num) vbox.addWidget(self.in_num_btn) vbox.addStretch(1) vbox.addLayout(hbox) self.setLayout(vbox)
槽函數 generate_num_btn_click,用於生成猜數位遊戲的目標數位。
def generate_num_btn_click(self): tar_num = random.randint(1, 99) self.num = tar_num # 重置最大最小值 self.max_num = 100 # 當前最大值 self.min_num = 0 # 當前最小值
槽函數 tar_num_btn_click,用於顯示或隱藏目標數位。
def tar_num_btn_click(self): if self.num != 0 and self.tar_num_btn.text().strip() == '顯示數位': self.tar_num.setText(str(self.num)) self.tar_num_btn.setText('隱藏數位') elif self.tar_num_btn.text().strip() == '隱藏數位': self.tar_num.setText('#####') self.tar_num_btn.setText('顯示數位')
槽函數 in_num_btn_click,用於處理猜數位實現的主要程式碼邏輯。
def in_num_btn_click(self): try: in_num = int(self.in_num.text().strip()) if in_num < self.min_num or in_num >= self.max_num: pass else: if self.num == 0: self.msg.setText('沒有目標數位') elif in_num == self.num: self.msg.setText('恭喜你,猜對了') else: if in_num < self.num: self.msg.setText(str(in_num) + ' - ' + str(self.max_num)) self.min_num = in_num elif in_num > self.num: self.msg.setText(str(self.min_num) + ' - ' + str(in_num)) self.max_num = in_num except: self.msg.setText('請輸入數位')
最後,通過呼叫主題模組的藍色主題樣式是整個App變得漂亮。
CandyWindow.createWindow(GuessNumber(), theme='blue', title='猜數位遊戲 公眾號:[Python 集中營]', ico_path='數位.ico')
完整程式碼
# -*- coding:utf-8 -*- # @author Python 集中營 # @date 2022/2/10 # @file test1.py # done # GUI猜數位遊戲 from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * # 主題樣式模組參照 from QCandyUi import CandyWindow import sys import random class GuessNumber(QWidget): def __init__(self): super(GuessNumber, self).__init__() self.num = 0 # 目標數位 self.max_num = 100 # 當前最大值 self.min_num = 0 # 當前最小值 self.init_ui() def init_ui(self): self.setWindowTitle('猜數位遊戲 公眾號:[Python 集中營]') self.setWindowIcon(QIcon('數位.ico')) self.setFixedSize(500, 350) self.msg = QLabel() self.msg.setText('猜數位遊戲') self.msg.setStyleSheet( 'font-size:50px;text-align:center;font-weight:bold;font-family:"Microsoft JhengHei";') self.msg.setAlignment(Qt.AlignCenter) self.in_num = QLineEdit() self.in_num.setPlaceholderText('請輸入目標數位') self.in_num.setAlignment(Qt.AlignCenter) self.in_num_btn = QPushButton() self.in_num_btn.setText('就是它了') self.in_num_btn.clicked.connect(self.in_num_btn_click) self.tar_num_btn = QPushButton() self.tar_num_btn.setText('顯示數位') self.tar_num_btn.clicked.connect(self.tar_num_btn_click) self.tar_num = QLabel() self.tar_num.setText('#####') self.tar_num.setFixedWidth(50) self.generate_num_btn = QPushButton() self.generate_num_btn.setText(' 生成目標數位 ') self.generate_num_btn.clicked.connect(self.generate_num_btn_click) hbox = QHBoxLayout() hbox.addWidget(self.tar_num) hbox.addWidget(self.tar_num_btn) hbox.addStretch(1) hbox.addWidget(self.generate_num_btn) vbox = QVBoxLayout() vbox.addStretch(1) vbox.addWidget(self.msg) vbox.addWidget(self.in_num) vbox.addWidget(self.in_num_btn) vbox.addStretch(1) vbox.addLayout(hbox) self.setLayout(vbox) def generate_num_btn_click(self): tar_num = random.randint(1, 99) self.num = tar_num # 重置最大最小值 self.max_num = 100 # 當前最大值 self.min_num = 0 # 當前最小值 def tar_num_btn_click(self): if self.num != 0 and self.tar_num_btn.text().strip() == '顯示數位': self.tar_num.setText(str(self.num)) self.tar_num_btn.setText('隱藏數位') elif self.tar_num_btn.text().strip() == '隱藏數位': self.tar_num.setText('#####') self.tar_num_btn.setText('顯示數位') def in_num_btn_click(self): try: in_num = int(self.in_num.text().strip()) if in_num < self.min_num or in_num >= self.max_num: pass else: if self.num == 0: self.msg.setText('沒有目標數位') elif in_num == self.num: self.msg.setText('恭喜你,猜對了') else: if in_num < self.num: self.msg.setText(str(in_num) + ' - ' + str(self.max_num)) self.min_num = in_num elif in_num > self.num: self.msg.setText(str(self.min_num) + ' - ' + str(in_num)) self.max_num = in_num except: self.msg.setText('請輸入數位') if __name__ == '__main__': app = QApplication(sys.argv) w = CandyWindow.createWindow(GuessNumber(), theme='blue', title='猜數位遊戲 公眾號:[Python 集中營]', ico_path='數位.ico') w.show() sys.exit(app.exec_())
以上就是基於PyQt5製作一個猜數位小遊戲的詳細內容,更多關於PyQt5猜數位遊戲的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45