python3+PyQt5实现重庆彩大数据查询分析功能

    科技2024-07-05  67

    python3+PyQt5实现高频彩大数据查询分析功能 python+selenium实现爬取彩票开奖结果并存入MYSQL数据库中 本文描述如何通过实现一个彩票分析工具** 之前见过很多软件工程师序用VC++ 或 JAVA实现软件项目的(可以直接打包成EXE文件),大家用python3一般也是用在爬虫,WEB开发,大数据分析方面 其实python3+PyQt5也可以开发应用软件或者工具(打包成EXE文件,可以在WINDOWS系统下打开运行) 1.在python3中安装qt designe 先用pip install PyQt5安装PyQt5 再 用pip3 install pyQt-tools安装设计器 接下来如果发现没有designer.exe,在cmd中使用 使用pip install --user PyQt5-tools 命令安装 2 接在转到E:\python36\Lib\site-packages\pyqt5_tools\ 双击designer.exe 打开qt designe的面板,添加软件所需要的各种控件(如按钮,单选钮,文本框等)E:\是安装python3的路径,根据你自身的按装目录自行更改 qt designe面板如下: 在这打开里插入图片描述 3. 在你软件的主界面上添加各种控件,生成UI文件并转化成PY文件 在CMD 命令行下切换到目录E:\python36\Scripts 执行以下 命令转化成PY 文件: pyuic5 D:\money\wuxing.ui -o E:\money\wuxing.py ,其中的UI文件的路径根据你自己保存的位置请自行修改 生成的PY文件如下: class Mylookwind(QWidget): def setupUi(self, QtWidget): QtWidget.setObjectName(“QtWidget”) QtWidget.resize(951, 950) QtWidget.setWindowFlags(Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint)

    self.textEdit = QtWidgets.QTextEdit(QtWidget) self.textEdit.setGeometry(QtCore.QRect(10, 40, 561, 371)) self.textEdit.setObjectName(“textEdit”)

    self.textEdit_120 = QtWidgets.QTextEdit(QtWidget) self.textEdit_120.setGeometry(QtCore.QRect(220, 420, 70, 28)) self.textEdit_120.setObjectName(“textEdit_120”)

    self.pushButton = QtWidgets.QPushButton(QtWidget) self.pushButton.setGeometry(QtCore.QRect(30, 10, 75, 23)) self.pushButton.setObjectName(“pushButton”) self.pushButton.clicked.connect(self.findthread)

    self.Button_0 = QtWidgets.QPushButton(QtWidget) self.Button_0.setGeometry(QtCore.QRect(20, 520, 31, 23)) self.Button_0.setObjectName(“pushButton”) self.Button_0.setCheckable(True) self.Button_0.clicked.connect(self.set0)

    self.Button_1 = QtWidgets.QPushButton(QtWidget) self.Button_1.setGeometry(QtCore.QRect(50, 520, 31, 23)) self.Button_1.setObjectName(“pushButton_2”) self.Button_1.setCheckable(True) self.Button_1.clicked.connect(self.set1)

    self.Button_2 = QtWidgets.QPushButton(QtWidget) self.Button_2.setGeometry(QtCore.QRect(80, 520, 31, 23)) self.Button_2.setObjectName(“pushButton_3”) self.Button_2.setCheckable(True) self.Button_2.clicked.connect(self.set2)

    self.Button_3 = QtWidgets.QPushButton(QtWidget) self.Button_3.setGeometry(QtCore.QRect(110, 520, 31, 23)) self.Button_3.setObjectName(“pushButton_4”) self.Button_3.setCheckable(True) self.Button_3.clicked.connect(self.set3)

    self.Button_4 = QtWidgets.QPushButton(QtWidget) self.Button_4.setGeometry(QtCore.QRect(140, 520, 31, 23)) self.Button_4.setObjectName(“pushButton_5”) self.Button_4.setCheckable(True) self.Button_4.clicked.connect(self.set4)

    self.Button_5 = QtWidgets.QPushButton(QtWidget) self.Button_5.setGeometry(QtCore.QRect(170, 520, 31, 23)) self.Button_5.setObjectName(“pushButton_6”) self.Button_5.setCheckable(True) self.Button_5.clicked.connect(self.set5)

    self.Button_6 = QtWidgets.QPushButton(QtWidget) self.Button_6.setGeometry(QtCore.QRect(200, 520, 31, 23)) self.Button_6.setObjectName(“pushButton_7”) self.Button_6.setCheckable(True) self.Button_6.clicked.connect(self.set6)

    self.Button_7 = QtWidgets.QPushButton(QtWidget) self.Button_7.setGeometry(QtCore.QRect(230, 520, 31, 23)) self.Button_7.setObjectName(“pushButton_8”) self.Button_7.setCheckable(True) self.Button_7.clicked.connect(self.set7)

    self.Button_8 = QtWidgets.QPushButton(QtWidget) self.Button_8.setGeometry(QtCore.QRect(260, 520, 31, 23)) self.Button_8.setObjectName(“pushButton_9”) self.Button_8.setCheckable(True) self.Button_8.clicked.connect(self.set8) self.Button_26 = QtWidgets.QPushButton(QtWidget) self.Button_26.setGeometry(QtCore.QRect(200, 600, 31, 23)) self.Button_26.setObjectName(“pushButton_7”) self.Button_26.setCheckable(True) self.Button_26.clicked.connect(self.set26)

    self.Button_27 = QtWidgets.QPushButton(QtWidget) self.Button_27.setGeometry(QtCore.QRect(230, 600, 31, 23)) self.Button_27.setObjectName(“pushButton_8”) self.Button_27.setCheckable(True) self.Button_27.clicked.connect(self.set27)

    self.Button_28 = QtWidgets.QPushButton(QtWidget) self.Button_28.setGeometry(QtCore.QRect(260,600, 31, 23)) self.Button_28.setObjectName(“pushButton_9”) self.Button_28.setCheckable(True) self.Button_28.clicked.connect(self.set28)

    self.Button_29 = QtWidgets.QPushButton(QtWidget) self.Button_29.setGeometry(QtCore.QRect(290, 600, 31, 23)) self.Button_29.setObjectName(“pushButton_10”) self.Button_29.setCheckable(True) self.Button_29.clicked.connect(self.set29)

    self.Button_buildHM = QtWidgets.QPushButton(QtWidget) self.Button_buildHM.setGeometry(QtCore.QRect(90, 635, 65, 32)) self.Button_buildHM.setObjectName(“pushButton_10”) self.Button_buildHM.clicked.connect(self.shenchengHM) #三星组号按钮

    self.pushButton_2 = QtWidgets.QPushButton(QtWidget) self.pushButton_2.setGeometry(QtCore.QRect(217, 460, 75, 23)) self.pushButton_2.setObjectName(“pushButton_2”) self.pushButton_2.clicked.connect(self.buildhm) # 组120 生成号码 def buildhm(self):

    self.pushButton_wu = QtWidgets.QPushButton(QtWidget) self.pushButton_wu.setGeometry(QtCore.QRect(370, 460, 75, 23)) self.pushButton_wu.setObjectName(“pushButton_32”) self.pushButton_wu.clicked.connect(self.WuxinDXDS) # 五星单双大小查询 def WuxinDXDS(self):

    self.label_60 = QtWidgets.QLabel(QtWidget) self.label_60.setGeometry(QtCore.QRect(20, 685, 54, 12)) self.label_60.setObjectName(“labe60”) self.textEdit_60 = QtWidgets.QTextEdit(QtWidget) self.textEdit_60.setGeometry(QtCore.QRect(53, 680, 65, 25)) self.textEdit_60.setObjectName(“textEdit_60”) self.Button_buildHM60 = QtWidgets.QPushButton(QtWidget) self.Button_buildHM60.setGeometry(QtCore.QRect(53, 715, 65, 32)) self.Button_buildHM60.setObjectName(“pushButton_10”) self.Button_buildHM60.clicked.connect(self.buildhm60) #组60组号按钮

    self.textEdit_24 = QtWidgets.QTextEdit(QtWidget) self.textEdit_24.setGeometry(QtCore.QRect(53, 770, 65, 25)) self.textEdit_24.setObjectName(“textEdit_24”) self.Button_buildHM24 = QtWidgets.QPushButton(QtWidget) self.Button_buildHM24.setGeometry(QtCore.QRect(53, 809, 65, 32)) self.Button_buildHM24.setObjectName(“pushButton_10”) self.Button_buildHM24.clicked.connect(self.buildhm24) # 组24组号按钮

    self.label_30 = QtWidgets.QLabel(QtWidget) self.label_30.setGeometry(QtCore.QRect(123, 685, 54, 12)) self.label_30.setObjectName(“labe30”) self.textEdit_30 = QtWidgets.QTextEdit(QtWidget) self.textEdit_30.setGeometry(QtCore.QRect(164, 680, 65, 25)) self.textEdit_30.setObjectName(“textEdit_30”)

    self.label_10.setGeometry(QtCore.QRect(345, 685, 54, 12)) self.label_10.setObjectName(“labe10”) self.textEdit_10 = QtWidgets.QTextEdit(QtWidget) self.textEdit_10.setGeometry(QtCore.QRect(382, 680, 65, 25)) self.textEdit_10.setObjectName(“textEdit_10”) self.Button_buildHM10 = QtWidgets.QPushButton(QtWidget) self.Button_buildHM10.setGeometry(QtCore.QRect(383, 715, 65, 32)) self.Button_buildHM10.setObjectName(“pushButton_10”) self.Button_buildHM10.clicked.connect(self.buildhm10) # 组10组号按钮 self.textEdit_4 = QtWidgets.QTextEdit(QtWidget) self.textEdit_4.setGeometry(QtCore.QRect(382, 770, 65, 25)) self.textEdit_4.setObjectName(“textEdit_10”) self.Button_buildHM4 = QtWidgets.QPushButton(QtWidget) self.Button_buildHM4.setGeometry(QtCore.QRect(383, 809, 65, 32)) self.Button_buildHM4.setObjectName(“pushButton_10”) self.Button_buildHM4.clicked.connect(self.buildhm4) # 组4组号按钮

    self.textEdit_2030 = QtWidgets.QTextEdit(QtWidget) self.textEdit_2030.setGeometry(QtCore.QRect(398, 600, 65, 25)) self.textEdit_2030.setObjectName(“textEdit_2030”) self.Button_buildHM20_30 = QtWidgets.QPushButton(QtWidget) self.Button_buildHM20_30.setGeometry(QtCore.QRect(383, 635, 90, 32)) self.Button_buildHM20_30.setObjectName(“pushButton_10”) self.Button_buildHM20_30.clicked.connect(self.buildhm20_30) # 五星组选任意3个数

    self.textEdit_605 = QtWidgets.QTextEdit(QtWidget) self.textEdit_605.setGeometry(QtCore.QRect(503, 600, 65, 25)) self.textEdit_605.setObjectName(“textEdit_2030”) self.Button_buildHM60_5 = QtWidgets.QPushButton(QtWidget) self.Button_buildHM60_5.setGeometry(QtCore.QRect(492, 635, 90, 32)) self.Button_buildHM60_5.setObjectName(“pushButton_10”) self.Button_buildHM60_5.clicked.connect(self.buildhm60_5) # 五星组选60任意5个数

    self.label_5 = QtWidgets.QLabel(QtWidget) self.label_5.setGeometry(QtCore.QRect(455, 685, 54, 12)) self.label_5.setObjectName(“labe5”) self.textEdit_5 = QtWidgets.QTextEdit(QtWidget) self.textEdit_5.setGeometry(QtCore.QRect(492, 680, 65, 25)) self.textEdit_5.setObjectName(“textEdit_5”) self.Button_buildHM5 = QtWidgets.QPushButton(QtWidget) self.Button_buildHM5.setGeometry(QtCore.QRect(493, 715, 65, 32)) self.Button_buildHM5.setObjectName(“pushButton_5”)

    self.tableWidget = QtWidgets.QTableWidget(QtWidget) self.tableWidget.setGeometry(QtCore.QRect(600, 40, 271, 721)) self.tableWidget.setObjectName(“tableWidget”) self.tableWidget.setColumnCount(3) self.tableWidget.setRowCount(100000) self.tableWidget.setObjectName(“tableWidget”) self.tableWidget.horizontalHeader().setVisible(True) self.tableWidget.horizontalHeader().setCascadingSectionResizes(True) self.tableWidget.horizontalHeader().setHighlightSections(True) self.tableWidget.verticalHeader().setVisible(False) self.tableWidget.horizontalHeader().resizeSection(0, 110) # 设置第一列的宽度 self.tableWidget.horizontalHeader().resizeSection(1, 80) self.tableWidget.horizontalHeader().resizeSection(2, 60) self.tableWidget.verticalHeader().setMinimumSectionSize(25) self.tableWidget.scrollToBottom() # 设置滚动条到最后 TOP 到顶端 self.tableWidget.setHorizontalHeaderLabels([‘期号’, ‘开奖号’, ‘中出’])

    self.textEdit_2 = QtWidgets.QLineEdit(QtWidget) # 最高遗漏 self.textEdit_2.setGeometry(QtCore.QRect(80, 420, 50, 28)) self.textEdit_2.setObjectName(“textEdit_2”)

    self.textEdit_3 = QtWidgets.QLineEdit(QtWidget) # 当前遗漏 self.textEdit_3.setGeometry(QtCore.QRect(80, 473, 50, 28)) self.textEdit_3.setObjectName(“textEdit_3”) self.label = QtWidgets.QLabel(QtWidget) self.label.setGeometry(QtCore.QRect(20, 430, 54, 12)) self.bg1 = QButtonGroup(self) self.bg1.addButton(self.radioButton, 1) self.bg1.addButton(self.radioButton_2, 2) self.bg1.addButton(self.radioButton_3, 3) self.bg1.addButton(self.radioButton_4, 4) self.bg1.buttonClicked.connect(self.rbclicked) #def rbclicked(self):

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

    def retranslateUi(self, QtWidget): _translate = QtCore.QCoreApplication.translate QtWidget.setWindowTitle(_translate(“Form”, “查询面板-软件使用方法 QQ270114001”)) self.pushButton.setText(_translate(“Form”, “查询”)) self.Button_buildHM.setText(_translate(“Form”, “三星组号”)) self.Button_buildHM60.setText(_translate(“Form”,“组60组号”)) self.Button_buildHM30.setText(_translate(“Form”, “组30组号”)) self.Button_buildHM20.setText(_translate(“Form”, “组20组号”)) self.Button_buildHM10.setText(_translate(“Form”, “组10组号”)) self.Button_buildHM5.setText(_translate(“Form”, “组5组号”)) self.pushButton_wu.setText(_translate(“Form”, “五星查询”)) self.Button_buildHM20_30.setText(_translate(“Form”, “五星3个数组号”)) self.Button_buildHM60_5.setText(_translate(“Form”, “五星5个数组60”)) self.Button_buildHM24.setText(_translate(“Form”, “组24组号”)) self.Button_buildHM12.setText(_translate(“Form”, “组12组号”)) self.Button_buildHM6.setText(_translate(“Form”, “组6组号”)) self.Button_buildHM4.setText(_translate(“Form”, “组4组号”))

    self.label.setText(_translate(“Form”, “最高遗漏”)) self.label_1.setText(_translate(“Form”, “组120”)) self.label_2.setText(_translate(“Form”, “最高连出”)) self.label_3.setText(_translate(“Form”, “快速组号”)) self.label_60.setText(_translate(“Form”,“组60”)) self.label_30.setText(_translate(“Form”, " 组30")) self.label_20.setText(_translate(“Form”, " 组20")) self.label_10.setText(_translate(“Form”, " 组10")) self.label_5.setText(_translate(“Form”, " 组5"))

    4 。运行 python 看到的界面如下: 在这里插入图片描述 5 将python3程序打包为EXE 文件 将PY文件生成EXE 文件的方法: 一,先在CMD 目录用命令pip install PyInstaller安装 PyInstaller 二,PyInstaller的安装目录下即:D:\python36\Scripts下执行以下: pyinstaller -F D:\money\readAlldata.py -F表示所有的附加包都在一个文件中,一般生成后的文件比较大, 三,在CMD 窗口显示如下信息表示创建成功: D:\python36\Scripts> pyinstaller -F D:\money\readAlldata.py 155 INFO: PyInstaller: 3.6 156 INFO: Python: 3.6.5 156 INFO: Platform: Windows-7-6.1.7601-SP1 158 INFO: wrote D:\python36\Scripts\readAlldata.spec 162 INFO: UPX is not available. 164 INFO: Extending PYTHONPATH with paths 29010 INFO: checking EXE 29015 INFO: Building because toc changed 29016 INFO: Building EXE from EXE-00.toc 29018 INFO: Appending archive to EXE D:\python36\Scripts\dist\readAlldata.exe 29084 INFO: Building EXE from EXE-00.toc completed successfully.

    以上就是python3+PyQt5实现高频彩大数据查询分析功能的全流程,由于图片无法显示,如有不清楚的地方可以私信我,也可以在博文下以留言,需要源代码的可以私信我

    Processed: 0.010, SQL: 8