欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于PyQt5制作一個(gè)猜數(shù)字小游戲

 更新時(shí)間:2022年03月01日 08:33:16   作者:Python?集中營  
這篇文章主要為大家介紹了如何用Python中的PyQt5模塊制作一個(gè)帶GUI的猜數(shù)字小游戲,文中的示例代碼講解詳細(xì),感興趣的可以了解一下

開始之前,直接來看一下實(shí)現(xiàn)后的效果。想自己實(shí)現(xiàn)或者需要源碼的童鞋直接進(jìn)場...

將PyQt5的相關(guān)模塊直接導(dǎo)入即可。

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

為了照顧一下新關(guān)注的童鞋,這里介紹一下PyQt5的安裝,還是采用pip的安裝方式。

pip install PyQt5

將準(zhǔn)備好的樣式導(dǎo)入到代碼塊中。

# 主題樣式模塊引用
from QCandyUi import CandyWindow

文件和隨機(jī)數(shù)相關(guān)的模塊導(dǎo)入進(jìn)來。

import sys
import random

界面編寫函數(shù) init_ui,初始化UI界面及頁面布局代碼塊。

 def init_ui(self):
        self.setWindowTitle('猜數(shù)字游戲  公眾號:[Python 集中營]')
        self.setWindowIcon(QIcon('數(shù)字.ico'))

        self.setFixedSize(500, 350)

        self.msg = QLabel()
        self.msg.setText('猜數(shù)字游戲')
        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('請輸入目標(biāo)數(shù)字')
        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('顯示數(shù)字')
        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('  生成目標(biāo)數(shù)字  ')
        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)

槽函數(shù) generate_num_btn_click,用于生成猜數(shù)字游戲的目標(biāo)數(shù)字。

 def generate_num_btn_click(self):
        tar_num = random.randint(1, 99)
        self.num = tar_num
        # 重置最大最小值
        self.max_num = 100  # 當(dāng)前最大值
        self.min_num = 0  # 當(dāng)前最小值

槽函數(shù) tar_num_btn_click,用于顯示或隱藏目標(biāo)數(shù)字。

  def tar_num_btn_click(self):
        if self.num != 0 and self.tar_num_btn.text().strip() == '顯示數(shù)字':
            self.tar_num.setText(str(self.num))
            self.tar_num_btn.setText('隱藏?cái)?shù)字')
        elif self.tar_num_btn.text().strip() == '隱藏?cái)?shù)字':
            self.tar_num.setText('#####')
            self.tar_num_btn.setText('顯示數(shù)字')

槽函數(shù) in_num_btn_click,用于處理猜數(shù)字實(shí)現(xiàn)的主要代碼邏輯。

 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('沒有目標(biāo)數(shù)字')
                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('請輸入數(shù)字')

最后,通過調(diào)用主題模塊的藍(lán)色主題樣式是整個(gè)App變得漂亮。

CandyWindow.createWindow(GuessNumber(), theme='blue', title='猜數(shù)字游戲  公眾號:[Python 集中營]',
                                 ico_path='數(shù)字.ico')

完整代碼

# -*- coding:utf-8 -*-
# @author Python 集中營
# @date 2022/2/10
# @file test1.py

# done

# GUI猜數(shù)字游戲

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  # 目標(biāo)數(shù)字
        self.max_num = 100  # 當(dāng)前最大值
        self.min_num = 0  # 當(dāng)前最小值
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('猜數(shù)字游戲  公眾號:[Python 集中營]')
        self.setWindowIcon(QIcon('數(shù)字.ico'))

        self.setFixedSize(500, 350)

        self.msg = QLabel()
        self.msg.setText('猜數(shù)字游戲')
        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('請輸入目標(biāo)數(shù)字')
        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('顯示數(shù)字')
        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('  生成目標(biāo)數(shù)字  ')
        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  # 當(dāng)前最大值
        self.min_num = 0  # 當(dāng)前最小值

    def tar_num_btn_click(self):
        if self.num != 0 and self.tar_num_btn.text().strip() == '顯示數(shù)字':
            self.tar_num.setText(str(self.num))
            self.tar_num_btn.setText('隱藏?cái)?shù)字')
        elif self.tar_num_btn.text().strip() == '隱藏?cái)?shù)字':
            self.tar_num.setText('#####')
            self.tar_num_btn.setText('顯示數(shù)字')

    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('沒有目標(biāo)數(shù)字')
                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('請輸入數(shù)字')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = CandyWindow.createWindow(GuessNumber(), theme='blue', title='猜數(shù)字游戲  公眾號:[Python 集中營]',
                                 ico_path='數(shù)字.ico')
    w.show()
    sys.exit(app.exec_())

以上就是基于PyQt5制作一個(gè)猜數(shù)字小游戲的詳細(xì)內(nèi)容,更多關(guān)于PyQt5猜數(shù)字游戲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)圖片灰度化以及圖片顯示的兩種方法

    Python實(shí)現(xiàn)圖片灰度化以及圖片顯示的兩種方法

    這篇文章給大家介紹了Python實(shí)現(xiàn)圖片,灰度化以及圖片顯示的兩種方法并通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • 讓代碼變得更易維護(hù)的7個(gè)Python庫

    讓代碼變得更易維護(hù)的7個(gè)Python庫

    今天小編就為大家分享一篇關(guān)于讓代碼變得更易維護(hù)的7個(gè)Python庫,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 使用IPython來操作Docker容器的入門指引

    使用IPython來操作Docker容器的入門指引

    這篇文章主要介紹了使用IPython來操作Docker容器的方法,包括一些基本的搭建和連接,主要依靠docker-py模塊,需要的朋友可以參考下
    2015-04-04
  • 解決Opencv+Python cv2.imshow閃退問題

    解決Opencv+Python cv2.imshow閃退問題

    這篇文章主要介紹了解決Opencv+Python cv2.imshow閃退問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 用Python實(shí)現(xiàn)web端用戶登錄和注冊功能的教程

    用Python實(shí)現(xiàn)web端用戶登錄和注冊功能的教程

    這篇文章主要介紹了用Python實(shí)現(xiàn)web端用戶登錄和注冊功能的教程,需要的朋友可以參考下
    2015-04-04
  • Python學(xué)習(xí)之文件的讀取詳解

    Python學(xué)習(xí)之文件的讀取詳解

    這篇文章主要為大家介紹了Python中如何將文件中的內(nèi)容讀取出去來的方法,文中通過示例進(jìn)行了詳細(xì)講解,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-03-03
  • python操作jira添加模塊的方法

    python操作jira添加模塊的方法

    在開發(fā)工作中,Jira通常用作BUG管理和任務(wù)跟蹤管理等,項(xiàng)目經(jīng)理,測試人員,開發(fā)人員等在Jira上進(jìn)行提交BUG,提交任務(wù),修改任務(wù)進(jìn)度等操作.本文重點(diǎn)給大家介紹python操作jira添加模塊的方法,感興趣的朋友一起看看吧
    2022-03-03
  • python openpyxl的使用方法

    python openpyxl的使用方法

    Python借助openpyxl可以對xlsx文件進(jìn)行操作,幫助大家高效辦公,處理excel文件,下面就介紹一下相關(guān)的方法,以及一個(gè)小例子。
    2021-06-06
  • 關(guān)于Python字符編碼與二進(jìn)制不得不說的一些事

    關(guān)于Python字符編碼與二進(jìn)制不得不說的一些事

    這篇文章主要給大家介紹了關(guān)于Python字符編碼與二進(jìn)制不得不說的一些事,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python爬蟲之Selenium庫的使用方法

    Python爬蟲之Selenium庫的使用方法

    這篇文章主要介紹了Python爬蟲之Selenium庫的使用方法,幫助大家更好的理解和使用爬蟲,感興趣的朋友可以了解下
    2021-01-01

最新評論