电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python+PyQt5實(shí)現(xiàn)滅霸響指功能

瀏覽:74日期:2022-07-24 16:25:32

之前給大家分享過滅霸命令GitHub地址:https://github.com/hotvulcan/Thanos.sh,本文使用Python+PyQt5實(shí)現(xiàn)滅霸響指,實(shí)現(xiàn)過程較簡(jiǎn)單,上效果圖~

Python+PyQt5實(shí)現(xiàn)滅霸響指功能

GUI實(shí)現(xiàn)代碼如下:

# -*- 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'))

項(xiàng)目啟動(dòng)代碼如下:

# -*- coding: utf-8 -*-import sysimport timeimport threadingfrom PyQt5.QtGui import QPixmap, QImagefrom PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, QGraphicsOpacityEffectfrom GUI import Ui_MainWindowimport cv2import numpy as npdef cv_imread(file_path): cv_img = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), -1) return cv_imgclass 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轉(zhuǎn)換成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 < 7: tt = np.random.choice([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]) if tt not in temp_list: temp_list.append(int(tt)) z += 1 else: pass for i in temp_list: self.choose_list.append(self.label_all[i]) def appear_fun(self, cn): n = 0 op = QGraphicsOpacityEffect() for i in range(100): op.setOpacity(n) cn.setGraphicsEffect(op) n += 0.01 time.sleep(0.01) def image_appear(self): self.btn_start.setStyleSheet(self.file_path_btn_all[3]) for cn in self.choose_list: self.appear_fun(cn) time.sleep(0.05) self.choose_list = [] self.btn_start.setStyleSheet(self.file_path_btn_all[0]) self.flag_btn_start = True def disappear_fun(self, cn): n = 1 op = QGraphicsOpacityEffect() for i in range(100): op.setOpacity(n) cn.setGraphicsEffect(op) n -= 0.01 time.sleep(0.01) def image_disappear(self): self.select_image_random() for cn in self.choose_list: self.disappear_fun(cn) time.sleep(0.05) self.btn_start.setStyleSheet(self.file_path_btn_all[0]) self.flag_hero_revive = True def thread_1(self): self.btn_start.setStyleSheet(self.file_path_btn_all[1]) time.sleep(1) self.btn_start.setStyleSheet(self.file_path_btn_all[2]) time.sleep(0.5) t_2 = threading.Thread(target=self.image_disappear) t_2.start() def slot_btn_start(self): if self.flag_btn_start == True: self.flag_btn_start = False t_1 = threading.Thread(target=self.thread_1) t_1.start() elif self.flag_hero_revive == True: self.flag_hero_revive = False t_3 = threading.Thread(target=self.image_appear) t_3.start() else: pass def closeEvent(self, event): reply = QMessageBox.question(self, ’Exit’, ’Are you sure to exit?’, QMessageBox.Yes | QMessageBox.Cancel) if reply == QMessageBox.Yes: event.accept() else: event.ignore()def ui_main(): app = QApplication(sys.argv) w = SnapFinger() w.show() sys.exit(app.exec_())if __name__ == ’__main__’: ui_main()

項(xiàng)目文件及代碼參見:http://xiazai.jb51.net/202005/yuanma/Python_PyQt5_miebaxzh_jb51.rar

總結(jié)

到此這篇關(guān)于Python+PyQt5實(shí)現(xiàn)滅霸響指的文章就介紹到這了,更多相關(guān)python pyqt5 滅霸響指內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 卷筒电缆-拖链电缆-特种柔性扁平电缆定制厂家「上海缆胜」 | 热闷罐-高温罐-钢渣热闷罐-山东鑫泰鑫智能热闷罐厂家 | 路面机械厂家 | 论文查重_免费论文查重_知网学术不端论文查重检测系统入口_论文查重软件 | Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | 有源电力滤波装置-电力有源滤波器-低压穿排电流互感器|安科瑞 | 雄松华章(广州华章MBA)官网-专注MBA/MPA/MPAcc/MEM辅导培训 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 吨袋包装机|吨包秤|吨包机|集装袋包装机-烟台华恩科技 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 滚珠丝杆升降机_螺旋升降机_丝杠升降机-德迈传动 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 烟气在线监测系统_烟气在线监测仪_扬尘检测仪_空气质量监测站「山东风途物联网」 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 高压管道冲洗清洗机_液压剪叉式升降机平台厂家-林君机电 | 论文查重_免费论文查重_知网学术不端论文查重检测系统入口_论文查重软件 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 压砖机_电动螺旋压力机_粉末成型压力机_郑州华隆机械tel_0371-60121717 | 诸城网站建设-网络推广-网站优化-阿里巴巴托管-诸城恒泰互联 | 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 安徽华耐泵阀有限公司-官方网站| 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 节流截止放空阀-不锈钢阀门-气动|电动截止阀-鸿华阀门有限公司 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 |