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

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

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

開始之前,直接來看一下實現(xiàn)后的效果。想自己實現(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

文件和隨機數(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('隱藏數(shù)字')
        elif self.tar_num_btn.text().strip() == '隱藏數(shù)字':
            self.tar_num.setText('#####')
            self.tar_num_btn.setText('顯示數(shù)字')

槽函數(shù) in_num_btn_click,用于處理猜數(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)色主題樣式是整個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('隱藏數(shù)字')
        elif self.tar_num_btn.text().strip() == '隱藏數(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制作一個猜數(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í)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python如何合并多個字典或映射

    Python如何合并多個字典或映射

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

    python海龜繪圖實例教程

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

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

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

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

    Python是一種跨平臺的計算機程序設(shè)計語言,它可以運行在Windows、Mac和各種Linux/Unix系統(tǒng)上。這篇文章主要介紹了Python+Selenium+phantomjs實現(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í)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 詳解pycharm配置python解釋器的問題

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

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

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

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

最新評論

墨玉县| 霍山县| 旌德县| 永寿县| 墨玉县| 桓仁| 文成县| 巴青县| 郸城县| 金湖县| 唐山市| 新乐市| 新乡县| 湖北省| 广西| 鹤壁市| 屏东县| 罗江县| 宜都市| 五家渠市| 南陵县| 邻水| 泰安市| 仁怀市| 饶平县| 鄂托克旗| 中山市| 庆元县| 盘锦市| 孟村| 西安市| 淅川县| 永川市| 九江市| 安义县| 甘南县| 霍城县| 板桥市| 长泰县| 内丘县| 阿合奇县|