当前位置:   article > 正文

相信科学的力量,pyQT5实现简单的彩票预测功能(button、text)_pyqt5预测模型

pyqt5预测模型

ui设计

1、打开QTdesigner,新建默认工程,简单的拖放按钮和文本控件,设置按钮文本为开始预测。
Qt Designer界面
2、保存到目录,生成ui文件(untitled.ui)。
3、ui文件转换成python文件

  1. cmd调用pyuic指令转换ui文件为python文件(aaa.py)
    pyuic5.exe .\untitled.ui -o aaa.py
  2. 设置按钮回调函数为“P0ushBtBack”,当按钮点击后会回调此函数。
  3. 修改窗口的名称
    完整代码如下:
from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_widget(object):
    def setupUi(self, widget):
        widget.setObjectName("widget")
        widget.resize(741, 637)
        self.textEdit1 = QtWidgets.QTextEdit(widget)
        self.textEdit1.setGeometry(QtCore.QRect(80, 110, 271, 40))
        self.textEdit1.setReadOnly(True)
        self.textEdit1.setObjectName("textEdit1")
        self.textEdit1_2 = QtWidgets.QTextEdit(widget)
        self.textEdit1_2.setGeometry(QtCore.QRect(80, 320, 271, 271))
        self.textEdit1_2.setObjectName("textEdit1_2")
        self.pushButton = QtWidgets.QPushButton(widget)
        self.pushButton.setGeometry(QtCore.QRect(80, 290, 271, 31))
        self.pushButton.setObjectName("pushButton")
        self.textEdit1_3 = QtWidgets.QTextEdit(widget)
        self.textEdit1_3.setGeometry(QtCore.QRect(350, 320, 61, 271))
        self.textEdit1_3.setObjectName("textEdit1_3")

        self.retranslateUi(widget)
        self.pushButton.clicked.connect(widget.P0ushBtBack) # type: ignore
        QtCore.QMetaObject.connectSlotsByName(widget)

    def retranslateUi(self, widget):
        _translate = QtCore.QCoreApplication.translate
        widget.setWindowTitle(_translate("widget", "双色球"))
        self.pushButton.setText(_translate("widget", "开始预测"))
   # 实现push_button_click()函数,textEdit是我们放上去的文本框的id
    def P0ushBtBack(self):
        self.textEdit1.setText("我点击了按钮,显示框显示出文字")


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    widget = QtWidgets.QWidget()
    ui = Ui_widget()
    ui.setupUi(widget)
    widget.show()
    sys.exit(app.exec_())

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

逻辑设计

1、简单逻辑: 点击按钮->下方界面弹出预测结果

增加main.py用来编写逻辑,与上面生成的aaa.py保持同一个目录。
重写P0ushBtBack函数,增加点击后生成彩票数据的逻辑,完整代码如下:


import sys
from PyQt5 import QtWidgets
from aaa import Ui_widget
import random

list = []
#存放蓝球
dst_list1 = []
dst_list2 = []
dst_list3 = []
dst_list4 = []
dst_list5 = []


class MyPyQT_Form(QtWidgets.QMainWindow,Ui_widget):
    def __init__(self):
        super(MyPyQT_Form, self).__init__()
        self.setupUi(self)
        self.textEdit1.setText("福彩双色球预测")
    # 实现push_button_click()函数,textEdit是我们放上去的文本框的id
    def P0ushBtBack(self):
        
     	#存放红球
        dst_one_list = []
        
        #随机数生成
        dst_list1=  random.sample(list, 6)
        dst_list2 =  random.sample(list, 6)
        dst_list3 =  random.sample(list, 6)
        dst_list4 =  random.sample(list, 6)
        dst_list5 =  random.sample(list, 6)

        #排序
        dst_list1.sort()
        dst_list2.sort()
        dst_list3.sort()
        dst_list4.sort()
        dst_list5.sort()
        print(dst_list1)
 

        #简单拼接数据
        str1 =   str(dst_list1[0])+ " "+str(dst_list1[1])+ " " +str(dst_list1[2])+ " "+str(dst_list1[3])+ " "+str(dst_list1[4])+ " "+str(dst_list1[5])+ " \n"    \
               + str(dst_list2[0])+ " "+str(dst_list2[1])+ " " +str(dst_list2[2])+ " "+str(dst_list2[3])+ " "+str(dst_list2[4])+ " "+str(dst_list2[5])+ " \n"    \
               + str(dst_list3[0])+ " "+str(dst_list3[1])+ " " +str(dst_list3[2])+ " "+str(dst_list3[3])+ " "+str(dst_list3[4])+ " "+str(dst_list3[5])+ " \n"    \
               + str(dst_list4[0])+ " "+str(dst_list4[1])+ " " +str(dst_list4[2])+ " "+str(dst_list4[3])+ " "+str(dst_list4[4])+ " "+str(dst_list4[5])+ " \n"    \
               + str(dst_list5[0])+ " "+str(dst_list5[1])+ " " +str(dst_list5[2])+ " "+str(dst_list5[3])+ " "+str(dst_list5[4])+ " "+str(dst_list5[5])+ " \n"    
        print(str1)

        for i in range(0,5):
             dst_one_list.append( random.randrange(1, 16))
        print(dst_one_list)
        str2 = str(dst_one_list[0]) + "\n" + str(dst_one_list[1]) + "\n" + str(dst_one_list[2]) + "\n" + str(dst_one_list[3]) + "\n" + str(dst_one_list[4]) + "\n" 
        #设置文本框的显示内容
        self.textEdit1_2.setText(str1)
        self.textEdit1_3.setText(str2)


if __name__ == '__main__':

    #生成蓝球号池 1-32
    for i in range(1,32):
        list.append(i)
        print(list)

    app = QtWidgets.QApplication(sys.argv)
    my_pyqt_form = MyPyQT_Form()
    my_pyqt_form.show()
    sys.exit(app.exec_())



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

2、打包生成可执行文件
使用pyinstaller 指令编译生成exe文件

pyinstaller -F -w .\main.py
  • 1

-F:仅仅生成一个文件,不暴露其他信息,启动较慢。
-D:生成一个文件夹,里面是多文件模式,启动快。
-w:窗口模式打包,不显示控制台。
-c:跟图标路径,作为应用icon

采用一个文件和不现实控制台方式进行打包,生成文件在dist目录下。
可执行文件

最终效果

点击按钮,生成5组双色球数字。
执行效果示意图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/570832
推荐阅读
相关标签
  

闽ICP备14008679号