新手指引制作过程
新手指引的存在能让用户更直接的了解应用的使用步骤,在此以工资单旗舰版应用举例说明。
一、图片素材准备
应用的制作者需要梳理用户可能存疑的各个节点,并对其备注说明
首先运行过程中前期人为准备要提前告知,然后就是每一个输入参数的意义需要指明,再对于比较难理解的参数做进一步说明
如:
1. 提示会关闭 excel 或 wps
2. 对每个参数说明
3. 进一步说明
二、代码调用
这里我们采用 pyqt5 这个第三方库来做图片的显示动作
代码如下:
import sys
import os
if hasattr(sys, 'frozen'):
os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QLabel, QMenu, QAction, QDialog, QMessageBox
from PyQt5.QtGui import QCursor
from PyQt5.QtCore import QPoint, Qt
import win32api
import win32con
# 新手指引
class NewcomerWidget(QDialog):
def __init__(self):
super().__init__()
self.desktop = QApplication.desktop()
# 获取显示器分辨率大小
self.screenRect = self.desktop.screenGeometry()
self.height = self.screenRect.height()
self.width = self.screenRect.width()
k = 1080/1920
self.pic_path = os.path.dirname(os.path.realpath(sys.argv[0]))
# print(self.pic_path)
QMessageBox.information(self,"操作说明", "→或↓:下一步;↑或←:上一步;Esc:退出")
self.setWindowTitle('iS-Search新手指引')
# 显示的图标
self.setWindowIcon(QtGui.QIcon("{}\\qiqi.gif".format(self.pic_path)))
# self.setStyleSheet("background-color: rgb(26, 25, 25)")
self.label = QLabel(self)
# 图片素材的格式(png)及存放的位置(当前目录下的pics目录下)
self.path_model = "{}\\pics\\{}.png"
self.page = 1
# print("================")
# print("{}\\qiqi.gif".format(self.pic_path))
# print("================")
# print(self.path_model.format(self.pic_path, self.page))
# print("================")
# 调用QtGui.QPixmap方法,打开一个图片,存放在变量png中
png = QtGui.QPixmap(self.path_model.format(self.pic_path, self.page))
png = png.scaled(self.width,self.height)
self.label.setPixmap(png)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested[QPoint].connect(self.myListWidget)
def myListWidget(self):
popMenu = QMenu()
popMenu.addAction(QAction("上一张", self))
popMenu.addAction(QAction("下一张", self))
popMenu.addAction(QAction("退出", self))
popMenu.triggered[QAction].connect(self.processtrigger)
popMenu.exec_(QCursor.pos())
# 右键按钮事件
def processtrigger(self, q: QAction):
# 输出QMenu对象被点击
print(type(q))
if q.text() == "上一张":
self.back()
elif q.text() == "下一张":
self.down()
else:
self.close()
# 下一张函数
def down(self):
#共有19张图片(可根据自己的情况修改)
if self.page >= 19:
QMessageBox.information(self, "新手指引", "恭喜您完成新手指引")
self.close()
else:
self.page += 1
png = QtGui.QPixmap(self.path_model.format(self.pic_path, self.page))
png = png.scaled(self.width, self.height)
self.label.setPixmap(png)
# 上一张函数
def back(self):
if self.page <= 1:
QMessageBox.information(self, "新手指引", "已经是第一张啦,点击鼠标或键盘→|↓开始学习之旅吧")
pass
else:
self.page -= 1
png = QtGui.QPixmap(self.path_model.format(self.pic_path, self.page))
png = png.scaled(self.width, self.height)
self.label.setPixmap(png)
def mousePressEvent(self, a0: QtGui.QMouseEvent):
"""
左键点击
:param a0:
:return:
"""
if a0.button() == Qt.LeftButton:
self.down()
def keyPressEvent(self, a0: QtGui.QKeyEvent):
"""
键盘点击
:param a0:
:return:
"""
# print(a0.key())
if a0.key() == Qt.Key_Right or a0.key() == Qt.Key_Down: # 右/下方向键
self.down()
elif a0.key() == Qt.Key_Left or a0.key() == Qt.Key_Up: # 左/上方向键
self.back()
elif a0.key() == Qt.Key_Escape:
self.close()
else:
a0.ignore() # 其它忽略
if __name__ == '__main__':
xszy = QApplication(sys.argv)
window = NewcomerWidget()
window.showFullScreen()
sys.exit(xszy.exec_())
(结合指引的情况做修改)
三、代码结合应用使用
由于代码调用需要很多依赖的环境,因此这里采用 pyinstaller 的第三方库来将代码及环境打包成 exe。
打包语句如下
pyinstaller --path 电脑pyqt5的bin路径 --distpath 打包完成的exe存放路径 -D 需要打包的py代码文件
#如 pyinstaller --path C:\Users\admin\AppData\Local\Programs\Python\Python37\Lib\site-packages\PyQt5\Qt\bin --distpath C:\users\admin\Desktop\one\ -D C:\Users\admin\Documents\RPA\Project\pyqttest\codes\MainWindow.py
打包完成会在目标文件夹下生成 build 和 dist 两个文件夹,把 dist 下的 mainwindow 文件夹直接拷贝到应用的 codes 目录下,然后在应用中去打开这个 mainwindow 下的 exe 就可以了
在实际测试过程中会发现 exe 调起后就会执行后续组件,但我们实际需要等 exe 执行完成后再执行后续操作,所以要加上一个判断
os.popen('tasklist /FI "IMAGENAME eq MainWindow.exe"').read().count('MainWindow.exe')!=0
只要这个 exe 还存活,那么我们就等待,否则就可以执行后续操作 ~
好了,以上就是新手指引制作过程咯
踩踩,增加人气