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

pycharm實(shí)現(xiàn)猜數(shù)游戲

 更新時(shí)間:2020年12月07日 16:19:05   作者:斷情冢  
這篇文章主要為大家詳細(xì)介紹了pycharm實(shí)現(xiàn)猜數(shù)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了pycharm實(shí)現(xiàn)猜數(shù)游戲的具體代碼,供大家參考,具體內(nèi)容如下

1. 設(shè)計(jì)界面

如下所示,利用QTdesigner設(shè)計(jì)的界面:

然后將設(shè)計(jì)好的界面轉(zhuǎn)換為.py文件:

guess_number.py

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'guess_number.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
 def setupUi(self, MainWindow):
 MainWindow.setObjectName("MainWindow")
 MainWindow.resize(580, 328)
 icon = QtGui.QIcon()
 icon.addPixmap(QtGui.QPixmap("../../../Icon/Comment.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
 icon.addPixmap(QtGui.QPixmap("../../../Icon/Comment.svg"), QtGui.QIcon.Normal, QtGui.QIcon.On)
 icon.addPixmap(QtGui.QPixmap("../../../Icon/Comment.svg"), QtGui.QIcon.Disabled, QtGui.QIcon.Off)
 icon.addPixmap(QtGui.QPixmap("../../../Icon/Comment.svg"), QtGui.QIcon.Disabled, QtGui.QIcon.On)
 icon.addPixmap(QtGui.QPixmap("../../../Icon/Comment.svg"), QtGui.QIcon.Active, QtGui.QIcon.Off)
 icon.addPixmap(QtGui.QPixmap("../../../Icon/Comment.svg"), QtGui.QIcon.Active, QtGui.QIcon.On)
 icon.addPixmap(QtGui.QPixmap("../../../Icon/Comment.svg"), QtGui.QIcon.Selected, QtGui.QIcon.Off)
 icon.addPixmap(QtGui.QPixmap("../../../Icon/Comment.svg"), QtGui.QIcon.Selected, QtGui.QIcon.On)
 MainWindow.setWindowIcon(icon)
 self.centralwidget = QtWidgets.QWidget(MainWindow)
 self.centralwidget.setObjectName("centralwidget")
 self.gridLayout_4 = QtWidgets.QGridLayout(self.centralwidget)
 self.gridLayout_4.setObjectName("gridLayout_4")
 spacerItem = QtWidgets.QSpacerItem(20, 50, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
 self.gridLayout_4.addItem(spacerItem, 0, 1, 1, 1)
 spacerItem1 = QtWidgets.QSpacerItem(181, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
 self.gridLayout_4.addItem(spacerItem1, 1, 3, 1, 1)
 spacerItem2 = QtWidgets.QSpacerItem(180, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
 self.gridLayout_4.addItem(spacerItem2, 1, 0, 1, 1)
 self.gridLayout_3 = QtWidgets.QGridLayout()
 self.gridLayout_3.setObjectName("gridLayout_3")
 spacerItem3 = QtWidgets.QSpacerItem(17, 37, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
 self.gridLayout_3.addItem(spacerItem3, 0, 2, 1, 1)
 self.gridLayout_2 = QtWidgets.QGridLayout()
 self.gridLayout_2.setObjectName("gridLayout_2")
 self.button = QtWidgets.QPushButton(self.centralwidget)
 self.button.setObjectName("button")
 self.gridLayout_2.addWidget(self.button, 2, 1, 1, 1)
 self.inputnumber = QtWidgets.QLineEdit(self.centralwidget)
 self.inputnumber.setObjectName("inputnumber")
 self.gridLayout_2.addWidget(self.inputnumber, 0, 0, 1, 3)
 spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
 self.gridLayout_2.addItem(spacerItem4, 2, 2, 1, 1)
 spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
 self.gridLayout_2.addItem(spacerItem5, 2, 0, 1, 1)
 spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
 self.gridLayout_2.addItem(spacerItem6, 1, 1, 1, 1)
 self.gridLayout_3.addLayout(self.gridLayout_2, 1, 1, 2, 2)
 spacerItem7 = QtWidgets.QSpacerItem(37, 17, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
 self.gridLayout_3.addItem(spacerItem7, 1, 3, 1, 1)
 spacerItem8 = QtWidgets.QSpacerItem(37, 17, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
 self.gridLayout_3.addItem(spacerItem8, 1, 0, 1, 1)
 spacerItem9 = QtWidgets.QSpacerItem(17, 37, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
 self.gridLayout_3.addItem(spacerItem9, 3, 1, 1, 1)
 self.gridLayout_4.addLayout(self.gridLayout_3, 1, 1, 1, 2)
 spacerItem10 = QtWidgets.QSpacerItem(20, 49, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
 self.gridLayout_4.addItem(spacerItem10, 2, 2, 1, 1)
 MainWindow.setCentralWidget(self.centralwidget)
 self.menubar = QtWidgets.QMenuBar(MainWindow)
 self.menubar.setGeometry(QtCore.QRect(0, 0, 580, 28))
 self.menubar.setObjectName("menubar")
 MainWindow.setMenuBar(self.menubar)
 self.statusbar = QtWidgets.QStatusBar(MainWindow)
 self.statusbar.setObjectName("statusbar")
 MainWindow.setStatusBar(self.statusbar)

 self.retranslateUi(MainWindow)
 QtCore.QMetaObject.connectSlotsByName(MainWindow)

 def retranslateUi(self, MainWindow):
 _translate = QtCore.QCoreApplication.translate
 MainWindow.setWindowTitle(_translate("MainWindow", "猜數(shù)游戲"))
 self.button.setText(_translate("MainWindow", "我猜"))
 self.inputnumber.setText(_translate("MainWindow", "在這里輸入數(shù)字"))

2.對(duì)ui界面的功能具體實(shí)現(xiàn)

如果直接使用生成好的.py文件使用起來(lái)不是很方便,修改界面以后重新生成的.py文件會(huì)直接覆蓋,這里我采用一個(gè)新類(lèi)直接獲取前面設(shè)計(jì)好的界面從而實(shí)現(xiàn)算法與界面程序分離,先上代碼。

main.py

import sys
import guess_number
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, QWidget
from random import randint


class guess_ui(QMainWindow):
 def __init__(self):
 # get ui from guess_number
 super().__init__()
 self.num = randint(1, 100)
 self.MainWindow = QMainWindow()
 self.InitUI()

 def InitUI(self):
 ui = guess_number.Ui_MainWindow()
 ui.setupUi(self)
 button = self.findChild(QWidget, 'button')
 button.clicked.connect(self.show_message)
 self.show()
 # self.MainWindow.show()

 def show_message(self):
 inputnumber = self.findChild(QWidget, 'inputnumber')
 guessnumber = int(inputnumber.text())
 print(guessnumber)
 if guessnumber > self.num:
  QMessageBox.about(self, 'see the result', 'bigger!')
  inputnumber.setFocus()
 elif guessnumber < self.num:
  QMessageBox.about(self, 'see the result', 'smaller!')
  inputnumber.setFocus()
 else:
  QMessageBox.about(self, 'see the result', 'true')
  self.num = randint(1, 100)
  inputnumber.clear()
  inputnumber.setFocus()

 def closeEvent(self, event):
 reply = QMessageBox.question(self, 'confirm', 'Are you sure?', QMessageBox.Yes | QMessageBox.No)
 if reply == QMessageBox.Yes:
  event.accept()
 else:
  event.ignore()


if __name__ == '__main__':
 app = QApplication(sys.argv)
 guess = guess_ui()
 sys.exit(app.exec_())

3.對(duì)部分代碼的解析

class guess_ui(QMainWindow):

將此類(lèi)直接從QMainWindow繼承過(guò)來(lái)可以實(shí)現(xiàn)對(duì)QT事件的重寫(xiě),事件重現(xiàn)代碼如下:

def closeEvent(self, event):
 reply = QMessageBox.question(self, 'confirm', 'Are you sure?', QMessageBox.Yes | QMessageBox.No)
 if reply == QMessageBox.Yes:
  event.accept()
 else:
  event.ignore()

在界面文件中按鈕的定義是直接add進(jìn)去的,所以定義某個(gè)控件功能首先要獲取該控件,代碼如下所示:

button = self.findChild(QWidget, 'button')

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)螺旋矩陣的填充算法示例

    Python實(shí)現(xiàn)螺旋矩陣的填充算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)螺旋矩陣的填充算法,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)螺旋矩陣的相關(guān)循環(huán)、遍歷、判斷、運(yùn)算等操作技巧,需要的朋友可以參考下
    2017-12-12
  • Python實(shí)現(xiàn)京東搶秒殺功能

    Python實(shí)現(xiàn)京東搶秒殺功能

    這篇文章主要介紹了Python實(shí)現(xiàn)京東搶秒殺功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 使用python實(shí)現(xiàn)語(yǔ)音文件的特征提取方法

    使用python實(shí)現(xiàn)語(yǔ)音文件的特征提取方法

    今天小編就為大家分享一篇使用python實(shí)現(xiàn)語(yǔ)音文件的特征提取方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python 返回列表中某個(gè)值的索引方法

    python 返回列表中某個(gè)值的索引方法

    今天小編就為大家分享一篇python 返回列表中某個(gè)值的索引方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python open()文件處理使用介紹

    Python open()文件處理使用介紹

    這篇文章主要介紹了Python open()文件處理使用介紹,需要的朋友可以參考下
    2014-11-11
  • 用Python編寫(xiě)一個(gè)簡(jiǎn)單的Lisp解釋器的教程

    用Python編寫(xiě)一個(gè)簡(jiǎn)單的Lisp解釋器的教程

    這篇文章主要介紹了用Python編寫(xiě)一個(gè)簡(jiǎn)單的Lisp解釋器的教程,Lisp是一種源碼簡(jiǎn)單的函數(shù)式編程語(yǔ)言,本文主要介紹對(duì)其中的一個(gè)子集Scheme的解釋器開(kāi)發(fā),需要的朋友可以參考下
    2015-04-04
  • Python如何telnet到網(wǎng)絡(luò)設(shè)備

    Python如何telnet到網(wǎng)絡(luò)設(shè)備

    這篇文章主要介紹了Python如何telnet到網(wǎng)絡(luò)設(shè)備,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • Python賦值邏輯的實(shí)現(xiàn)

    Python賦值邏輯的實(shí)現(xiàn)

    本文主要介紹了 Python賦值邏輯的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 使用Python分析數(shù)據(jù)并進(jìn)行搜索引擎優(yōu)化的操作步驟

    使用Python分析數(shù)據(jù)并進(jìn)行搜索引擎優(yōu)化的操作步驟

    在互聯(lián)網(wǎng)時(shí)代,網(wǎng)站數(shù)據(jù)是一種寶貴的資源,可以用來(lái)分析用戶行為、市場(chǎng)趨勢(shì)、競(jìng)爭(zhēng)對(duì)手策略等,本文將介紹如何使用Python爬取網(wǎng)站數(shù)據(jù),并進(jìn)行搜索引擎優(yōu)化,,需要的朋友可以參考下
    2023-08-08
  • pandas 強(qiáng)制類(lèi)型轉(zhuǎn)換 df.astype實(shí)例

    pandas 強(qiáng)制類(lèi)型轉(zhuǎn)換 df.astype實(shí)例

    這篇文章主要介紹了pandas 強(qiáng)制類(lèi)型轉(zhuǎn)換 df.astype實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04

最新評(píng)論