微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python+PyQt5实现灭霸响指功能

这篇文章主要介绍了Python+PyQt5实现灭霸响指功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

之前给大家分享过灭霸命令GitHub地址:https://github.com/hotvulcan/thanos.sh,本文使用Python+PyQt5实现灭霸响指,实现过程较简单,上效果图~

GUI实现代码如下:

# -*- coding: utf-8 -*- from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setobjectName("MainWindow") MainWindow.resize(766, 760) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setobjectName("centralwidget") self.btn_start = QtWidgets.QPushButton(self.centralwidget) self.btn_start.setGeometry(QtCore.QRect(60, 10, 111, 101)) self.btn_start.setStyleSheet("background-color: rgba(255, 255, 255, 0);") self.btn_start.setText("") self.btn_start.setobjectName("btn_start") self.widget = QtWidgets.QWidget(self.centralwidget) self.widget.setGeometry(QtCore.QRect(60, 120, 631, 441)) self.widget.setobjectName("widget") self.verticalLayout = QtWidgets.QVBoxLayout(self.widget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setobjectName("verticalLayout") self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setobjectName("horizontalLayout") self.label_1 = QtWidgets.QLabel(self.widget) self.label_1.setAlignment(QtCore.Qt.AlignCenter) self.label_1.setobjectName("label_1") self.horizontalLayout.addWidget(self.label_1) self.label_2 = QtWidgets.QLabel(self.widget) self.label_2.setAlignment(QtCore.Qt.AlignCenter) self.label_2.setobjectName("label_2") self.horizontalLayout.addWidget(self.label_2) self.label_3 = QtWidgets.QLabel(self.widget) self.label_3.setAlignment(QtCore.Qt.AlignCenter) self.label_3.setobjectName("label_3") self.horizontalLayout.addWidget(self.label_3) self.label_4 = QtWidgets.QLabel(self.widget) self.label_4.setAlignment(QtCore.Qt.AlignCenter) self.label_4.setobjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.verticalLayout.addLayout(self.horizontalLayout) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setobjectName("horizontalLayout_2") self.label_5 = QtWidgets.QLabel(self.widget) self.label_5.setAlignment(QtCore.Qt.AlignCenter) self.label_5.setobjectName("label_5") self.horizontalLayout_2.addWidget(self.label_5) self.label_6 = QtWidgets.QLabel(self.widget) self.label_6.setAlignment(QtCore.Qt.AlignCenter) self.label_6.setobjectName("label_6") self.horizontalLayout_2.addWidget(self.label_6) self.label_7 = QtWidgets.QLabel(self.widget) self.label_7.setAlignment(QtCore.Qt.AlignCenter) self.label_7.setobjectName("label_7") self.horizontalLayout_2.addWidget(self.label_7) self.label_8 = QtWidgets.QLabel(self.widget) self.label_8.setAlignment(QtCore.Qt.AlignCenter) self.label_8.setobjectName("label_8") self.horizontalLayout_2.addWidget(self.label_8) self.verticalLayout.addLayout(self.horizontalLayout_2) self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setobjectName("horizontalLayout_3") self.label_9 = QtWidgets.QLabel(self.widget) self.label_9.setAlignment(QtCore.Qt.AlignCenter) self.label_9.setobjectName("label_9") self.horizontalLayout_3.addWidget(self.label_9) self.label_10 = QtWidgets.QLabel(self.widget) self.label_10.setAlignment(QtCore.Qt.AlignCenter) self.label_10.setobjectName("label_10") self.horizontalLayout_3.addWidget(self.label_10) self.label_11 = QtWidgets.QLabel(self.widget) self.label_11.setAlignment(QtCore.Qt.AlignCenter) self.label_11.setobjectName("label_11") self.horizontalLayout_3.addWidget(self.label_11) self.label_12 = QtWidgets.QLabel(self.widget) self.label_12.setAlignment(QtCore.Qt.AlignCenter) self.label_12.setobjectName("label_12") self.horizontalLayout_3.addWidget(self.label_12) self.verticalLayout.addLayout(self.horizontalLayout_3) self.widget1 = QtWidgets.QWidget(self.centralwidget) self.widget1.setGeometry(QtCore.QRect(220, 570, 321, 151)) self.widget1.setobjectName("widget1") self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.widget1) self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_4.setobjectName("horizontalLayout_4") self.label_13 = QtWidgets.QLabel(self.widget1) self.label_13.setAlignment(QtCore.Qt.AlignCenter) self.label_13.setobjectName("label_13") self.horizontalLayout_4.addWidget(self.label_13) self.label_14 = QtWidgets.QLabel(self.widget1) self.label_14.setAlignment(QtCore.Qt.AlignCenter) self.label_14.setobjectName("label_14") self.horizontalLayout_4.addWidget(self.label_14) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 766, 26)) self.menubar.setobjectName("menubar") MainWindow.setMenuBar(self.menubar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setwindowTitle(_translate("MainWindow", "FPO")) self.label_1.setText(_translate("MainWindow", "1")) self.label_2.setText(_translate("MainWindow", "1")) self.label_3.setText(_translate("MainWindow", "1")) self.label_4.setText(_translate("MainWindow", "1")) self.label_5.setText(_translate("MainWindow", "1")) self.label_6.setText(_translate("MainWindow", "1")) self.label_7.setText(_translate("MainWindow", "1")) self.label_8.setText(_translate("MainWindow", "1")) self.label_9.setText(_translate("MainWindow", "1")) self.label_10.setText(_translate("MainWindow", "1")) self.label_11.setText(_translate("MainWindow", "1")) self.label_12.setText(_translate("MainWindow", "1")) self.label_13.setText(_translate("MainWindow", "1")) self.label_14.setText(_translate("MainWindow", "1"))

项目启动代码如下:

# -*- coding: utf-8 -*- import sys import time import threading from PyQt5.QtGui import Qpixmap, QImage from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, QGraphicsOpacityEffect from GUI import Ui_MainWindow import cv2 import numpy as np def cv_imread(file_path): cv_img = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), -1) return cv_img class SnapFinger(QMainWindow, Ui_MainWindow): num = 0 flag_btn_start = True flag_hero_revive = False choose_list = [] def __init__(self): super(SnapFinger, self).__init__() self.setupUi(self) self.setFixedSize(self.width(), self.height()) self.label_all = [self.label_1, self.label_2, self.label_3, self.label_4, self.label_5, self.label_6, self.label_7, self.label_8, self.label_9, self.label_10, self.label_11, self.label_12, self.label_13, self.label_14] self.deal_with_label_all() file_path_1 = 'resources/BlackPanther.jpg' file_path_2 = 'resources/BlackWidow.jpg' file_path_3 = 'resources/CaptainAmerica.jpg' file_path_4 = 'resources/Clint.jpg' file_path_5 = 'resources/DoctorStranger.jpg' file_path_6 = 'resources/Drax.jpg' file_path_7 = 'resources/Groot.jpg' file_path_8 = 'resources/Hulk.jpg' file_path_9 = 'resources/Mantis.jpg' file_path_10 = 'resources/Nebula.jpg' file_path_11 = 'resources/SpiderMan.jpg' file_path_12 = 'resources/Thor.jpg' file_path_13 = 'resources/Vision.jpg' file_path_14 = 'resources/Winter.jpg' self.file_path_label_all = [file_path_1, file_path_2, file_path_3, file_path_4, file_path_5, file_path_6, file_path_7, file_path_8, file_path_9, file_path_10, file_path_11, file_path_12, file_path_13, file_path_14] self.load_image_to_label() btn_img_file_1 = "QPushButton{border-image: url(resources/thanos_1.png)}" btn_img_file_2 = "QPushButton{border-image: url(resources/thanos_2.png)}" btn_img_file_3 = "QPushButton{border-image: url(resources/thanos_3.png)}" btn_img_file_4 = "QPushButton{border-image: url(resources/thanos_4.png)}" self.file_path_btn_all = [btn_img_file_1, btn_img_file_2, btn_img_file_3, btn_img_file_4] self.load_image_to_btn() self.btn_start.clicked.connect(self.slot_btn_start) def deal_with_label_all(self): for i in range(14): self.label_all[i].setScaledContents(True) def deal_with_image_for_cv2(self, image): # 提取图像的尺寸和通道, 用于将opencv下的image转换成Qimage height, width, channel = image.shape bytesPerLine = 3 * width self.qImg = QImage(image.data, width, height, bytesPerLine, QImage.Format_RGB888).rgbSwapped() # 将Qimage显示出来 px = Qpixmap() px_1 = px.fromImage(self.qImg) return px_1 def load_image_to_btn(self): self.btn_start.setStyleSheet(self.file_path_btn_all[0]) def load_image_to_label(self): for i in range(14): self.img = cv_imread(self.file_path_label_all[i]) if self.img.size == 1: return px_1 = self.deal_with_image_for_cv2(self.img) self.label_all[i].setpixmap(px_1) def select_image_random(self): z = 0 temp_list = [] while z

项目文件代码参见:http://xiazai.html.cn/202005/yuanma/Python_PyQt5_miebaxzh_jb51.rar

总结

到此这篇关于Python+PyQt5实现灭霸响指的文章就介绍到这了,更多相关python pyqt5 灭霸响指内容搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐