网上网城网站,潍坊品牌设计公司,建设工程合同备案在什么网站上,公司电子商务网站建设策划书目录 一、引言
二、GUI界面设计
1.效果演示
2.相关提示
3.界面设计.py
三、主要程序详解
1.导入相关模块
2.初始化设置
3.组内判断
4.猜测过程
四、总程序代码 一、引言
在数字时代#xff0c;传统文化与编程语言的碰撞总能迸发奇妙火花。本项目以PyQtPython为技术…目录 一、引言
二、GUI界面设计
1.效果演示
2.相关提示
3.界面设计.py
三、主要程序详解
1.导入相关模块
2.初始化设置
3.组内判断
4.猜测过程
四、总程序代码 一、引言
在数字时代传统文化与编程语言的碰撞总能迸发奇妙火花。本项目以PyQtPython为技术载体将古老的十二生肖文化与二进制算法相结合打造一款互动占卜工具。用户通过图形化界面判断系统会将其自动转换为二进制代码并推算生肖。既是对数理思维的现代化诠释也是对PyQt事件驱动模型与Python数据处理能力的趣味实践。
二、GUI界面设计
使用PyQt5进行界面的搭建界面如下 初始界面搭建采用极简风格。用户通过四次选择在对应四个组别中分别判断是否存在自身属相从而给出四个存在与否的答案最终点击“猜”即可弹出计算机所预测的属相。
1.效果演示 以属猴为例第一组和第四组中均存在“猴”第二组和第三组中不存在“猴”则由第一组到第四组分别选择“存在”、“不存在”、“不存在”、“存在”最后程序通过这四次答案给出的结果同样是“猴”则猜测正确其他生肖同理。
但当未选择选项时或存在空白选项时会有“有空余选项未选择”的提示当均选择“存在”或“不存在”时当然也存在其他情况后面进行详细解释也会出现“请按照实际情况进行选择”的提示因为按照组别内容确实不满足条件肯定是用户有意选错。
2.相关提示 3.界面设计.py
通过pyuic5产生的GUI界面代码UI_shengxiao.py如下
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file UI_shengxiao.ui
#
# Created by: PyQt5 UI code generator 5.15.11
#
# 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, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName(Form)Form.setEnabled(True)Form.resize(600, 420)Form.setMinimumSize(QtCore.QSize(600, 420))Form.setMaximumSize(QtCore.QSize(600, 420))icon QtGui.QIcon()icon.addPixmap(QtGui.QPixmap(:/image1.png), QtGui.QIcon.Normal, QtGui.QIcon.Off)Form.setWindowIcon(icon)self.label_5 QtWidgets.QLabel(Form)self.label_5.setGeometry(QtCore.QRect(370, 10, 141, 31))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(16)self.label_5.setFont(font)self.label_5.setObjectName(label_5)self.label_8 QtWidgets.QLabel(Form)self.label_8.setGeometry(QtCore.QRect(190, 10, 131, 31))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(18)font.setBold(False)font.setWeight(50)self.label_8.setFont(font)self.label_8.setObjectName(label_8)self.label_10 QtWidgets.QLabel(Form)self.label_10.setGeometry(QtCore.QRect(450, 0, 71, 51))self.label_10.setText()self.label_10.setPixmap(QtGui.QPixmap(:/image1.png))self.label_10.setObjectName(label_10)self.label QtWidgets.QLabel(Form)self.label.setGeometry(QtCore.QRect(30, 80, 71, 31))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(16)self.label.setFont(font)self.label.setObjectName(label)self.label_3 QtWidgets.QLabel(Form)self.label_3.setGeometry(QtCore.QRect(140, 60, 351, 81))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(36)self.label_3.setFont(font)self.label_3.setFrameShadow(QtWidgets.QFrame.Sunken)self.label_3.setObjectName(label_3)self.label_2 QtWidgets.QLabel(Form)self.label_2.setGeometry(QtCore.QRect(30, 160, 71, 31))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(16)self.label_2.setFont(font)self.label_2.setObjectName(label_2)self.label_4 QtWidgets.QLabel(Form)self.label_4.setGeometry(QtCore.QRect(30, 240, 71, 31))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(16)self.label_4.setFont(font)self.label_4.setObjectName(label_4)self.label_6 QtWidgets.QLabel(Form)self.label_6.setGeometry(QtCore.QRect(30, 320, 71, 31))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(16)self.label_6.setFont(font)self.label_6.setObjectName(label_6)self.label_7 QtWidgets.QLabel(Form)self.label_7.setGeometry(QtCore.QRect(140, 140, 351, 81))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(36)self.label_7.setFont(font)self.label_7.setObjectName(label_7)self.label_9 QtWidgets.QLabel(Form)self.label_9.setGeometry(QtCore.QRect(140, 220, 351, 81))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(36)self.label_9.setFont(font)self.label_9.setObjectName(label_9)self.label_11 QtWidgets.QLabel(Form)self.label_11.setGeometry(QtCore.QRect(140, 300, 351, 81))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(36)self.label_11.setFont(font)self.label_11.setObjectName(label_11)self.label_12 QtWidgets.QLabel(Form)self.label_12.setGeometry(QtCore.QRect(20, 60, 481, 71))self.label_12.setFrameShape(QtWidgets.QFrame.StyledPanel)self.label_12.setText()self.label_12.setObjectName(label_12)self.label_13 QtWidgets.QLabel(Form)self.label_13.setGeometry(QtCore.QRect(20, 140, 481, 71))self.label_13.setFrameShape(QtWidgets.QFrame.StyledPanel)self.label_13.setText()self.label_13.setObjectName(label_13)self.label_14 QtWidgets.QLabel(Form)self.label_14.setGeometry(QtCore.QRect(20, 220, 481, 71))self.label_14.setFrameShape(QtWidgets.QFrame.StyledPanel)self.label_14.setText()self.label_14.setObjectName(label_14)self.label_15 QtWidgets.QLabel(Form)self.label_15.setGeometry(QtCore.QRect(20, 300, 481, 71))self.label_15.setFrameShape(QtWidgets.QFrame.StyledPanel)self.label_15.setText()self.label_15.setObjectName(label_15)self.pushButton QtWidgets.QPushButton(Form)self.pushButton.setGeometry(QtCore.QRect(140, 380, 331, 31))font QtGui.QFont()font.setFamily(Adobe Arabic)font.setPointSize(12)self.pushButton.setFont(font)self.pushButton.setObjectName(pushButton)self.radioButton QtWidgets.QRadioButton(Form)self.radioButton.setGeometry(QtCore.QRect(520, 80, 89, 16))self.radioButton.setAutoExclusive(True)self.radioButton.setObjectName(radioButton)self.radioButton_2 QtWidgets.QRadioButton(Form)self.radioButton_2.setGeometry(QtCore.QRect(520, 100, 89, 16))self.radioButton_2.setAutoExclusive(True)self.radioButton_2.setObjectName(radioButton_2)self.radioButton_3 QtWidgets.QRadioButton(Form)self.radioButton_3.setGeometry(QtCore.QRect(520, 160, 89, 16))self.radioButton_3.setAutoExclusive(True)self.radioButton_3.setObjectName(radioButton_3)self.radioButton_4 QtWidgets.QRadioButton(Form)self.radioButton_4.setGeometry(QtCore.QRect(520, 180, 89, 16))self.radioButton_4.setAutoExclusive(True)self.radioButton_4.setObjectName(radioButton_4)self.radioButton_5 QtWidgets.QRadioButton(Form)self.radioButton_5.setGeometry(QtCore.QRect(520, 240, 89, 16))self.radioButton_5.setAutoExclusive(True)self.radioButton_5.setObjectName(radioButton_5)self.radioButton_6 QtWidgets.QRadioButton(Form)self.radioButton_6.setGeometry(QtCore.QRect(520, 260, 89, 16))self.radioButton_6.setAutoExclusive(True)self.radioButton_6.setObjectName(radioButton_6)self.radioButton_7 QtWidgets.QRadioButton(Form)self.radioButton_7.setGeometry(QtCore.QRect(520, 320, 89, 16))self.radioButton_7.setAutoExclusive(True)self.radioButton_7.setObjectName(radioButton_7)self.radioButton_8 QtWidgets.QRadioButton(Form)self.radioButton_8.setGeometry(QtCore.QRect(520, 340, 89, 16))self.radioButton_8.setAutoExclusive(True)self.radioButton_8.setObjectName(radioButton_8)self.label_15.raise_()self.label_14.raise_()self.label_13.raise_()self.label_12.raise_()self.label_5.raise_()self.label_8.raise_()self.label_10.raise_()self.label.raise_()self.label_3.raise_()self.label_2.raise_()self.label_4.raise_()self.label_6.raise_()self.label_7.raise_()self.label_9.raise_()self.label_11.raise_()self.pushButton.raise_()self.radioButton.raise_()self.radioButton_2.raise_()self.radioButton_3.raise_()self.radioButton_4.raise_()self.radioButton_5.raise_()self.radioButton_6.raise_()self.radioButton_7.raise_()self.radioButton_8.raise_()self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate QtCore.QCoreApplication.translateForm.setWindowTitle(_translate(Form, Cai_shengxiao))self.label_5.setText(_translate(Form, Designed By))self.label_8.setText(_translate(Form, 生肖猜猜看))self.label.setText(_translate(Form, 第一组))self.label_3.setText(_translate(Form, 狗 羊 猴 鸡 猪 狗))self.label_2.setText(_translate(Form, 第二组))self.label_4.setText(_translate(Form, 第三组))self.label_6.setText(_translate(Form, 第四组))self.label_7.setText(_translate(Form, 龙 蛇 兔 猪 马 龙))self.label_9.setText(_translate(Form, 牛 虎 狗 马 蛇 鸡))self.label_11.setText(_translate(Form, 马 狗 猴 虎 鼠 龙))self.pushButton.setText(_translate(Form, 猜))self.radioButton.setText(_translate(Form, 存在))self.radioButton_2.setText(_translate(Form, 不存在))self.radioButton_3.setText(_translate(Form, 存在))self.radioButton_4.setText(_translate(Form, 不存在))self.radioButton_5.setText(_translate(Form, 存在))self.radioButton_6.setText(_translate(Form, 不存在))self.radioButton_7.setText(_translate(Form, 存在))self.radioButton_8.setText(_translate(Form, 不存在))
import ziyuan_rc三、主要程序详解
1.导入相关模块
import sys
from UI_shengxiao import *
from PyQt5.QtWidgets import QApplication, QWidget, QButtonGroup# 保持窗口大小和qtdesigner中的一致
from PyQt5 import QtCore
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
导入前端页面设计文件UI_shengxiao.py不懂为啥需要导入Qtcore的请看一键曝光PythonPyQt实现的文件目录透视镜。
2.初始化设置 def __init__(self):super(QWidget, self).__init__()self.setupUi(self)self.radioButton.clicked.connect(self.yizu)self.radioButton_2.clicked.connect(self.yizu)self.radioButton_3.clicked.connect(self.erzu)self.radioButton_4.clicked.connect(self.erzu)self.radioButton_5.clicked.connect(self.sanzu)self.radioButton_6.clicked.connect(self.sanzu)self.radioButton_7.clicked.connect(self.sizu)self.radioButton_8.clicked.connect(self.sizu)self.pushButton.clicked.connect(self.cai)self.group1 QButtonGroup()self.group1.addButton(self.radioButton)self.group1.addButton(self.radioButton_2)self.group2 QButtonGroup()self.group2.addButton(self.radioButton_3)self.group2.addButton(self.radioButton_4)self.group3 QButtonGroup()self.group3.addButton(self.radioButton_5)self.group3.addButton(self.radioButton_6)self.group4 QButtonGroup()self.group4.addButton(self.radioButton_7)self.group4.addButton(self.radioButton_8)self.result_1 2self.result_2 2self.result_3 2self.result_4 2self.jieguo [0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100]self.shengxiao [鼠, 牛, 虎, 兔, 龙, 蛇, 马, 羊, 猴, 鸡, 狗, 猪] 首先将radio button按组绑定于不同的函数因所有radio button在默认情况下是互斥的即只能单选不能显示多选效果所以建立button分组体系将8个radio button分为四组在每一组中的两两radio button均是互斥的可以单选接着定义4个变量结果的初始值为2不是0和1均可为后续方便操作这里使用str类型而不是int整型最后建立映射列表jieguo和shengxiao两者根据索引是一一对应的关系当然也可以使用字典。
3.组内判断 def yizu(self):if (self.radioButton.isChecked() True) and (self.radioButton_2.isChecked() False):self.result_1 1if (self.radioButton.isChecked() False) and (self.radioButton_2.isChecked() True):self.result_1 0def erzu(self):if (self.radioButton_3.isChecked() True) and (self.radioButton_4.isChecked() False):self.result_2 1if (self.radioButton_3.isChecked() False) and (self.radioButton_4.isChecked() True):self.result_2 0def sanzu(self):if (self.radioButton_5.isChecked() True) and (self.radioButton_6.isChecked() False):self.result_3 1if (self.radioButton_5.isChecked() False) and (self.radioButton_6.isChecked() True):self.result_3 0def sizu(self):if (self.radioButton_7.isChecked() True) and (self.radioButton_8.isChecked() False):self.result_4 1if (self.radioButton_7.isChecked() False) and (self.radioButton_8.isChecked() True):self.result_4 0
四个组判断结构一致对属于各自的两个radio button选择状态分别进行判断如果选择第一个radio button不选后一个radio button则为“存在”更新result值为“1”表示用户属相在对应组别中“存在”否则更新result值为“0”表示用户属相在对应组别中“不存在”。
4.猜测过程 def cai(self):if (self.result_1 2) or (self.result_2 2) or (self.result_1 3) or (self.result_4 2):QtWidgets.QMessageBox.critical(self, 提示, 有空余选项未选择)else:zongjieguo self.result_1self.result_2self.result_3self.result_4# print(zongjieguo)if zongjieguo in self.jieguo:shengxiao self.shengxiao[self.jieguo.index(zongjieguo)]QtWidgets.QMessageBox.information(self, 成功, 你的生肖是 shengxiao)else:QtWidgets.QMessageBox.critical(self, 提示, 请按照实际情况进行选择)
result值一旦有一个为初始值2的话即证明用户未对某个组别进行判断选择因此提示用户“有空余选项未选择”否则将4个result值进行拼接得到4位二进制数只不过是用字符串形式表示因4位二进制数能够表示的结果有16种而生肖只有12种所以在此还需要判断这四位二进制数是否在jieguo中从而剔除0000110111101111这四种结果最后根据jieguo索引对应生肖并成功输出。
四、总程序代码
import sys
from UI_shengxiao import *
from PyQt5.QtWidgets import QApplication, QWidget, QButtonGroup# 保持窗口大小和qtdesigner中的一致
from PyQt5 import QtCore
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)class login_interface(QWidget, Ui_Form):def __init__(self):super(QWidget, self).__init__()self.setupUi(self)self.radioButton.clicked.connect(self.yizu)self.radioButton_2.clicked.connect(self.yizu)self.radioButton_3.clicked.connect(self.erzu)self.radioButton_4.clicked.connect(self.erzu)self.radioButton_5.clicked.connect(self.sanzu)self.radioButton_6.clicked.connect(self.sanzu)self.radioButton_7.clicked.connect(self.sizu)self.radioButton_8.clicked.connect(self.sizu)self.pushButton.clicked.connect(self.cai)self.group1 QButtonGroup()self.group1.addButton(self.radioButton)self.group1.addButton(self.radioButton_2)self.group2 QButtonGroup()self.group2.addButton(self.radioButton_3)self.group2.addButton(self.radioButton_4)self.group3 QButtonGroup()self.group3.addButton(self.radioButton_5)self.group3.addButton(self.radioButton_6)self.group4 QButtonGroup()self.group4.addButton(self.radioButton_7)self.group4.addButton(self.radioButton_8)self.result_1 2self.result_2 2self.result_3 2self.result_4 2self.jieguo [0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100]self.shengxiao [鼠, 牛, 虎, 兔, 龙, 蛇, 马, 羊, 猴, 鸡, 狗, 猪]def yizu(self):if (self.radioButton.isChecked() True) and (self.radioButton_2.isChecked() False):self.result_1 1if (self.radioButton.isChecked() False) and (self.radioButton_2.isChecked() True):self.result_1 0def erzu(self):if (self.radioButton_3.isChecked() True) and (self.radioButton_4.isChecked() False):self.result_2 1if (self.radioButton_3.isChecked() False) and (self.radioButton_4.isChecked() True):self.result_2 0def sanzu(self):if (self.radioButton_5.isChecked() True) and (self.radioButton_6.isChecked() False):self.result_3 1if (self.radioButton_5.isChecked() False) and (self.radioButton_6.isChecked() True):self.result_3 0def sizu(self):if (self.radioButton_7.isChecked() True) and (self.radioButton_8.isChecked() False):self.result_4 1if (self.radioButton_7.isChecked() False) and (self.radioButton_8.isChecked() True):self.result_4 0def cai(self):if (self.result_1 2) or (self.result_2 2) or (self.result_1 3) or (self.result_4 2):QtWidgets.QMessageBox.critical(self, 提示, 有空余选项未选择)else:zongjieguo self.result_1self.result_2self.result_3self.result_4# print(zongjieguo)if zongjieguo in self.jieguo:shengxiao self.shengxiao[self.jieguo.index(zongjieguo)]QtWidgets.QMessageBox.information(self, 成功, 你的生肖是 shengxiao)else:QtWidgets.QMessageBox.critical(self, 提示, 请按照实际情况进行选择)if __name__ __main__:app QApplication(sys.argv)w login_interface()w.show()sys.exit(app.exec_())欢迎留言沟通交流