最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于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使用poplib模塊和smtplib模塊收發(fā)電子郵件的教程

    Python使用poplib模塊和smtplib模塊收發(fā)電子郵件的教程

    smtplib模塊一般我們比較熟悉、這里我們會來講解使用smtplib發(fā)送SSL/TLS安全郵件的方法,而poplib模塊則負(fù)責(zé)處理接收pop3協(xié)議的郵件,下面我們就來看Python使用poplib模塊和smtplib模塊收發(fā)電子郵件的教程
    2016-07-07
  • Numpy中np.max的用法及np.maximum區(qū)別

    Numpy中np.max的用法及np.maximum區(qū)別

    這篇文章主要介紹了Numpy中np.max的用法及np.maximum區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python如何合并多個(gè)字典或映射

    Python如何合并多個(gè)字典或映射

    這篇文章主要介紹了Python如何合并多個(gè)字典或映射,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • python海龜繪圖實(shí)例教程

    python海龜繪圖實(shí)例教程

    這篇文章主要介紹了python海龜繪圖實(shí)例教程,需要的朋友可以參考下
    2014-07-07
  • Python實(shí)現(xiàn)快速多線程ping的方法

    Python實(shí)現(xiàn)快速多線程ping的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)快速多線程ping的方法,實(shí)例分析了Python多線程及ICMP數(shù)據(jù)包的發(fā)送技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Python+Selenium+phantomjs實(shí)現(xiàn)網(wǎng)頁模擬登錄和截圖功能(windows環(huán)境)

    Python+Selenium+phantomjs實(shí)現(xiàn)網(wǎng)頁模擬登錄和截圖功能(windows環(huán)境)

    Python是一種跨平臺的計(jì)算機(jī)程序設(shè)計(jì)語言,它可以運(yùn)行在Windows、Mac和各種Linux/Unix系統(tǒng)上。這篇文章主要介紹了Python+Selenium+phantomjs實(shí)現(xiàn)網(wǎng)頁模擬登錄和截圖功能,需要的朋友可以參考下
    2019-12-12
  • DjangoUeditor圖片不顯示img的src沒有域名問題

    DjangoUeditor圖片不顯示img的src沒有域名問題

    在使用DjangoUeditor過程中,可能遇到圖片上傳后不顯示問題,解決辦法是修改源碼view.py,加入代碼使得保存的圖片URL帶有協(xié)議和域名,具體做法是在保存圖片代碼中添加request.scheme獲取協(xié)議,request.META['HTTP_HOST']獲取域名
    2024-09-09
  • 在python3.9下如何安裝scrapy的方法

    在python3.9下如何安裝scrapy的方法

    這篇文章主要介紹了在python3.9下如何安裝scrapy的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 詳解pycharm配置python解釋器的問題

    詳解pycharm配置python解釋器的問題

    這篇文章主要介紹了安裝好Pycharm后如何配置Python解釋器簡易教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 詳解Python中open()函數(shù)指定文件打開方式的用法

    詳解Python中open()函數(shù)指定文件打開方式的用法

    well,我們這里所指的文件打開方式并不是指調(diào)用什么應(yīng)用程序去打開某個(gè)文件,而是只讀只寫或者二進(jìn)制等的打開方式,這里我們就來詳解Python中open()函數(shù)指定文件打開方式的用法
    2016-06-06

最新評論

灵宝市| 民县| 中超| 政和县| 伽师县| 汽车| 牟定县| 锦州市| 留坝县| 突泉县| 定结县| 藁城市| 营口市| 寻乌县| 兴文县| 林西县| 巨野县| 博野县| 昌乐县| 巴青县| 保山市| 游戏| 广饶县| 肥城市| 遂宁市| 蓬莱市| 囊谦县| 黄平县| 通榆县| 全南县| 长治县| 泾川县| 阳曲县| 基隆市| 公安县| 龙岩市| 岑溪市| 视频| 东辽县| 聂拉木县| 思南县|