当前位置: 首页 > news >正文

绍兴网站制作工具django做的电子商务网站

绍兴网站制作工具,django做的电子商务网站,二级建造师考试科目,免费手机网站申请前言 这里是【使用Python编写游戏辅助工具】的第五篇#xff1a;打造交互式游戏工具界面#xff1a;PySide6/PyQT高效构建GUI工具。本文主要介绍使用PySide6来实现构建GUI工具。 在前面#xff0c;我们实现了两个实用的游戏辅助功能#xff1a; 由键盘监听事件触发的鼠标连… 前言 这里是【使用Python编写游戏辅助工具】的第五篇打造交互式游戏工具界面PySide6/PyQT高效构建GUI工具。本文主要介绍使用PySide6来实现构建GUI工具。 在前面我们实现了两个实用的游戏辅助功能 由键盘监听事件触发的鼠标连击功能对Windows窗口的多种操作如隐藏、显示、设置前台等 在这一篇文章中笔者将带领读者朋友们使用 PySide6/PyQT 将前面实现的功能封装成一个GUI工具这样一个简单的游戏辅助工具初具雏形了。 即使你完全没有 PySide6/PyQT 这方面的开发经验也没关系学习就完事了 即便不想学习笔者也会提供源码拿来用就完事了。 本文章为本系列文章最后一篇【使用Python编写游戏辅助工具】系列文章到此结束。 文章脉络概述 该工具大致的组织架构如下图所示 包含 鼠标连击、Windows窗口操作等功能 #mermaid-svg-0OaookKNkVPI1C3H {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-0OaookKNkVPI1C3H .error-icon{fill:#552222;}#mermaid-svg-0OaookKNkVPI1C3H .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-0OaookKNkVPI1C3H .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-0OaookKNkVPI1C3H .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-0OaookKNkVPI1C3H .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-0OaookKNkVPI1C3H .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-0OaookKNkVPI1C3H .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-0OaookKNkVPI1C3H .marker{fill:#333333;stroke:#333333;}#mermaid-svg-0OaookKNkVPI1C3H .marker.cross{stroke:#333333;}#mermaid-svg-0OaookKNkVPI1C3H svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-0OaookKNkVPI1C3H .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-0OaookKNkVPI1C3H .cluster-label text{fill:#333;}#mermaid-svg-0OaookKNkVPI1C3H .cluster-label span{color:#333;}#mermaid-svg-0OaookKNkVPI1C3H .label text,#mermaid-svg-0OaookKNkVPI1C3H span{fill:#333;color:#333;}#mermaid-svg-0OaookKNkVPI1C3H .node rect,#mermaid-svg-0OaookKNkVPI1C3H .node circle,#mermaid-svg-0OaookKNkVPI1C3H .node ellipse,#mermaid-svg-0OaookKNkVPI1C3H .node polygon,#mermaid-svg-0OaookKNkVPI1C3H .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-0OaookKNkVPI1C3H .node .label{text-align:center;}#mermaid-svg-0OaookKNkVPI1C3H .node.clickable{cursor:pointer;}#mermaid-svg-0OaookKNkVPI1C3H .arrowheadPath{fill:#333333;}#mermaid-svg-0OaookKNkVPI1C3H .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-0OaookKNkVPI1C3H .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-0OaookKNkVPI1C3H .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-0OaookKNkVPI1C3H .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-0OaookKNkVPI1C3H .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-0OaookKNkVPI1C3H .cluster text{fill:#333;}#mermaid-svg-0OaookKNkVPI1C3H .cluster span{color:#333;}#mermaid-svg-0OaookKNkVPI1C3H div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-0OaookKNkVPI1C3H :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 辅助工具 鼠标连击 Windows窗口操作 在本系列文章中我们将逐步构建一个游戏辅助工具它将提供以下主要功能所有功能都是借助Python的相关库和模块来帮助我们实现的 鼠标连击器实现自动触发连续鼠标点击动作帮助我们实现连击操作 Windows窗口操作利用Python的相关库和模块我们将探索如何操作和控制Windows窗口包括隐藏窗口、显示窗口、置顶窗口等操作 系列文章脉络 系列文章内容大体如下后续可能会更新新的文章。 点击直达【使用Python编写游戏辅助工具】第一篇概述 点击直达【使用Python编写游戏辅助工具】第二篇键盘监听的应用 点击直达【使用Python编写游戏辅助工具】第三篇鼠标连击器的实现 点击直达【使用Python编写游戏辅助工具】第四篇Windows窗口操作 点击直达【使用Python编写游戏辅助工具】第五篇打造交互式游戏工具界面PySide6/PyQT高效构建GUI工具 知识点 库和模块描述PySide6/PyQT提供了Python与Qt框架的绑定用于创建图形用户界面GUI 安装依赖 pip install pyside6这个模块就可以很好的实现本文的主题。 实现 因文章篇幅有限抓重点来讲。 本文的代码实在是太多了也不知从哪说起。干脆把代码都贴上来 操作示例 视频介绍咸鱼之王后台挂机软件和 鼠标连点器 Python实现 下面的动图主要展示了该工具可以最小化到系统托盘并从系统托盘恢复的操作。 项目组织 使用PySide6/PyQT 构建的GUI工具组织架构如下所示 采用了MVC模型通过MVC模式的应用可以实现数据、用户界面和业务逻辑的解耦提高代码的可读性、可维护性和可测试性模型、视图和控制器各自担负不同的责任使代码更具结构化并允许团队成员分工合作独立开发和测试各个组件。 GameAssistant/ ├── controllers/ │ ├── __init__.py │ └── controller_main.py ├── make/ │ └── 辅助小工具.spec ├── models/ │ ├── invoke_func/ │ │ ├── __init__.py │ │ ├── mouse_click.py │ │ └── window_operate.py │ ├── __init__.py │ └── model_main.py ├── views/ │ ├── resources/ │ │ ├── main.ui │ │ ├── trash.png │ │ └── utils.qrc │ ├── ui/ │ │ ├── __init__.py │ │ ├── main_ui.py │ │ └── utils_rc.py │ ├── widgets/ │ │ ├── __init__.py │ │ └── view_main.py │ └── __init__.py ├── main.py ├── README.md └── requirements.txt绘制GUI界面 在designer.exe 软件中绘制出下图所示的工具界面路径在views/resources/main.ui 使用了QTabWidget 控件绘制了两个页面。 在鼠标连击 页面有一个输入框在后台挂机 页面有一个输入框和两个按钮 这个比较简单动手拖拽需要的控件拼凑起来就可以了有手就行。 如下动图所示 model模型 这里使用了 QRunnable QThreadPool 实现的线程池并将所有任务都给到 线程池中运行。 鼠标点击 和 Windows操作 的代码放置在models/invoke_func/ 下 # -*- coding: utf-8 -*- # Name: model_main.py # Author: 小菜 # Date: 2023/6/14 20:00 # Description:from collections import defaultdict from PySide6.QtCore import (QObject, QRunnable, QThreadPool, Signal)from models.invoke_func.mouse_click import click_mouse from models.invoke_func.window_operate import (show_window, hide_window)flag Trueclass WorkerRunnable(QRunnable):def __init__(self, func, *args, **kwargs):super().__init__()self.func funcself.args argsself.status_signal kwargs.get(status_signal)def run(self):if not self.args:self.func()while flag:self.func(*self.args)def win_run(self):res self.func(*self.args)self.status_signal.emit({status: res})class ModelMain(QObject):win_status_signal: Signal Signal(dict)def __init__(self):super().__init__()self.thread_pool QThreadPool()self.thread_status_map defaultdict(bool)def stop_keyboard_listener(self):global flagif flag:flag Falsethread_name: str clickself.thread_status_map[thread_name] Falsedef click_operate(self, frequency: int 10):global flagthread_name: str clickif self.thread_status_map[thread_name]:returnflag Trueself.thread_status_map[thread_name] Trueif frequency 10:frequency 10print(flag, thread_name, self.thread_status_map[thread_name], frequency)click_frequency_map {10: [0.09],20: [0.035],30: [0.027],40: [0.014],50: [0.013],60: [0.005],70: [0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0],80: [0.01, 0.01, 0.01, 0],90: [0.01, 0.01, 0],100: [0.01, 0.0001, 0.0001, 0, 0],150: [0.001, 0.001, 0, 0, 0]}task WorkerRunnable(click_mouse,click_frequency_map.get(frequency, 150))self.thread_pool.start(task)def show_win_operate(self, title: str None):task WorkerRunnable(show_window,title,status_signalself.win_status_signal)self.thread_pool.start(task.win_run)def hide_win_operate(self, title: str None):task WorkerRunnable(hide_window,title,status_signalself.win_status_signal)self.thread_pool.start(task.win_run) view视图 视图代码实现了 添加工具到系统托盘从系统托盘退出或恢复工具按下键盘的 Esc就最小化到系统托盘 # -*- coding: utf-8 -*- # Name: view_main.py # Author: 小菜 # Date: 2023/6/14 20:00 # Description: import osfrom PySide6.QtGui import (QAction, QIcon, QShortcut, QKeySequence) from PySide6.QtWidgets import (QMainWindow, QSystemTrayIcon, QMenu)from views import Ui_MainWindowclass ViewMain(QMainWindow, Ui_MainWindow):def __init__(self, parentNone) - None:super().__init__(parentparent)self.setupUi(self)# 创建系统托盘图标相关的变量和对象self._restore_action QAction()self._quit_action QAction()self._tray_icon_menu QMenu()# 创建系统托盘图标self.tray_icon QSystemTrayIcon(self)self.tray_icon.setIcon(QIcon(u:/trash.png))self.tray_icon.setToolTip(辅助小工具)# 创建系统托盘图标的菜单和动作self.create_actions()self.create_tray_icon()self.tray_icon.show()# 连接系统托盘图标的激活信号到槽函数self.tray_icon.activated.connect(self.tray_icon_activated)# 键盘监听self.listen_keyboard()def tray_icon_activated(self, reason):# 当系统托盘图标被激活时的操作if reason QSystemTrayIcon.ActivationReason.Trigger:self.restore_from_tray()def restore_from_tray(self):# 还原窗口if self.isMinimized():self.showNormal()elif self.isMaximized():self.showMaximized()else:self.show()def create_actions(self):# 创建系统托盘图标菜单的动作self._restore_action QAction(显示, self)self._restore_action.triggered.connect(self.restore_from_tray) # 显示菜单项触发还原窗口的操作self._quit_action QAction(退出, self)self._quit_action.triggered.connect(lambda: os._exit(0)) # 退出菜单项触发退出应用程序的操作def create_tray_icon(self):# 创建系统托盘图标的菜单self._tray_icon_menu QMenu(self)self._tray_icon_menu.addAction(self._restore_action)self._tray_icon_menu.addSeparator()self._tray_icon_menu.addAction(self._quit_action)self.tray_icon.setContextMenu(self._tray_icon_menu)self.tray_icon.show()def show_notification(self, title: str 连击信息⚠, text: str None, iconQSystemTrayIcon.MessageIcon.Information):# 显示系统通知self.tray_icon.showMessage(title,f警告{text},icon,2000)def listen_keyboard(self):# 键盘监听shortcut QShortcut(QKeySequence(Esc), self)# 当按下 Esc 键时隐藏窗口shortcut.activated.connect(self.hide) controller控制器 这里做的操作是将 model与view连接起来充当了一个中间人的活儿。 # -*- coding: utf-8 -*- # Name: controller_main.py # Author: 小菜 # Date: 2023/6/14 20:00 # Description:import keyboard from PySide6.QtCore import Slot from PySide6.QtWidgets import QSystemTrayIconfrom views import ViewMain from models import (ModelMain, WorkerRunnable)round_to_nearest_10 lambda number: min(round(number / 10) * 10, 150)class ControllerMain:def __init__(self):self.view ViewMain()self.model ModelMain()# 显示窗口self.view.show()# 初始化 键盘监听self.init_operate()# 绑定按钮self.view.btn_show_win.clicked.connect(self.show_win_operate)self.view.btn_hide_win.clicked.connect(self.hide_win_operate)# 绑定信号到槽函数self.model.win_status_signal.connect(self.window_listen)def init_operate(self):task WorkerRunnable(self.listen_keyboard)self.model.thread_pool.start(task)def listen_keyboard(self):keyboard.add_hotkey(CtrlShiftA, self.click_operate)keyboard.add_hotkey(CtrlShiftQ, self.model.stop_keyboard_listener)keyboard.wait()def click_operate(self):frequency 10# 创建匿名函数try:frequency round_to_nearest_10(int(self.view.line_edit_click.text()))print(frequency)except (ValueError, TypeError):...finally:self.model.click_operate(frequencyfrequency)self.view.show_notification(text开始点击)def show_win_operate(self):win_title self.view.line_edit_title.text()if not win_title:returnself.model.show_win_operate(titlewin_title)def hide_win_operate(self):win_title self.view.line_edit_title.text()if not win_title:returnself.model.hide_win_operate(titlewin_title)Slot(dict)def window_listen(self, item):if not item.get(status):self.view.show_notification(title警告警告⚠,text找不到窗口,iconQSystemTrayIcon.MessageIcon.Warning) main函数 函数启动入口 # -*- coding: utf-8 -*- # Name: main.py # Author: 小菜 # Date: 2023/6/14 20:00 # Description:import sys from ctypes import windllfrom PySide6.QtWidgets import QApplicationfrom controllers import ControllerMainif __name__ __main__:# 同步图标windll.shell32.SetCurrentProcessExplicitAppUserModelID(nothing)app QApplication()# 关闭窗口时候不退出程序app.setQuitOnLastWindowClosed(False)controller ControllerMain()# 事件循环sys.exit(app.exec()) 总结 本文介绍了 PySide6/PyQT 打包游戏辅助工具的操作。 将前面介绍的 鼠标连点、Windows窗口操作等功能打包成一个GUI工具从更加方便后续的使用。 总而言之本文通过详细介绍使用 PySide6/PyQT 打包GUI的操作帮助读者理解和应用Python在游戏辅助工具开发中的打包功能。
文章转载自:
http://www.morning.hlshn.cn.gov.cn.hlshn.cn
http://www.morning.nhpmn.cn.gov.cn.nhpmn.cn
http://www.morning.zqkr.cn.gov.cn.zqkr.cn
http://www.morning.fpjxs.cn.gov.cn.fpjxs.cn
http://www.morning.jwdys.cn.gov.cn.jwdys.cn
http://www.morning.qbgdy.cn.gov.cn.qbgdy.cn
http://www.morning.nrydm.cn.gov.cn.nrydm.cn
http://www.morning.fkyqm.cn.gov.cn.fkyqm.cn
http://www.morning.yqpck.cn.gov.cn.yqpck.cn
http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn
http://www.morning.qxjck.cn.gov.cn.qxjck.cn
http://www.morning.khpx.cn.gov.cn.khpx.cn
http://www.morning.rfwqt.cn.gov.cn.rfwqt.cn
http://www.morning.dyght.cn.gov.cn.dyght.cn
http://www.morning.bxqry.cn.gov.cn.bxqry.cn
http://www.morning.hytqt.cn.gov.cn.hytqt.cn
http://www.morning.zlgth.cn.gov.cn.zlgth.cn
http://www.morning.ynrzf.cn.gov.cn.ynrzf.cn
http://www.morning.cwrnr.cn.gov.cn.cwrnr.cn
http://www.morning.jqtb.cn.gov.cn.jqtb.cn
http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn
http://www.morning.qxwwg.cn.gov.cn.qxwwg.cn
http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn
http://www.morning.nrfrd.cn.gov.cn.nrfrd.cn
http://www.morning.bkpbm.cn.gov.cn.bkpbm.cn
http://www.morning.kjgdm.cn.gov.cn.kjgdm.cn
http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn
http://www.morning.bxqpl.cn.gov.cn.bxqpl.cn
http://www.morning.rrhfy.cn.gov.cn.rrhfy.cn
http://www.morning.kfcfq.cn.gov.cn.kfcfq.cn
http://www.morning.ymqfx.cn.gov.cn.ymqfx.cn
http://www.morning.skmzm.cn.gov.cn.skmzm.cn
http://www.morning.sbncr.cn.gov.cn.sbncr.cn
http://www.morning.iqcge.com.gov.cn.iqcge.com
http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn
http://www.morning.c7617.cn.gov.cn.c7617.cn
http://www.morning.qyfrd.cn.gov.cn.qyfrd.cn
http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn
http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn
http://www.morning.bwxph.cn.gov.cn.bwxph.cn
http://www.morning.abgy8.com.gov.cn.abgy8.com
http://www.morning.hclqy.cn.gov.cn.hclqy.cn
http://www.morning.sbrpz.cn.gov.cn.sbrpz.cn
http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn
http://www.morning.rhqn.cn.gov.cn.rhqn.cn
http://www.morning.zlgth.cn.gov.cn.zlgth.cn
http://www.morning.jncxr.cn.gov.cn.jncxr.cn
http://www.morning.ccjhr.cn.gov.cn.ccjhr.cn
http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn
http://www.morning.rnmmh.cn.gov.cn.rnmmh.cn
http://www.morning.dbylp.cn.gov.cn.dbylp.cn
http://www.morning.grbp.cn.gov.cn.grbp.cn
http://www.morning.bmtyn.cn.gov.cn.bmtyn.cn
http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn
http://www.morning.tgyqq.cn.gov.cn.tgyqq.cn
http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn
http://www.morning.kryn.cn.gov.cn.kryn.cn
http://www.morning.tllhz.cn.gov.cn.tllhz.cn
http://www.morning.cjsnj.cn.gov.cn.cjsnj.cn
http://www.morning.czqqy.cn.gov.cn.czqqy.cn
http://www.morning.lwhsp.cn.gov.cn.lwhsp.cn
http://www.morning.tgnr.cn.gov.cn.tgnr.cn
http://www.morning.fcftj.cn.gov.cn.fcftj.cn
http://www.morning.qwwcf.cn.gov.cn.qwwcf.cn
http://www.morning.rfmzc.cn.gov.cn.rfmzc.cn
http://www.morning.pyncx.cn.gov.cn.pyncx.cn
http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn
http://www.morning.zsyqg.cn.gov.cn.zsyqg.cn
http://www.morning.ghqyr.cn.gov.cn.ghqyr.cn
http://www.morning.mtmph.cn.gov.cn.mtmph.cn
http://www.morning.tpps.cn.gov.cn.tpps.cn
http://www.morning.rtlrz.cn.gov.cn.rtlrz.cn
http://www.morning.xglgm.cn.gov.cn.xglgm.cn
http://www.morning.pwppk.cn.gov.cn.pwppk.cn
http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn
http://www.morning.kcbml.cn.gov.cn.kcbml.cn
http://www.morning.lqytk.cn.gov.cn.lqytk.cn
http://www.morning.rdng.cn.gov.cn.rdng.cn
http://www.morning.mqfw.cn.gov.cn.mqfw.cn
http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn
http://www.tj-hxxt.cn/news/273542.html

相关文章:

  • 设计网站如何推广方案个人建站公司
  • php网站环境配置中国查公司的网站
  • 如何管理建好的网站网站策划书基本内容
  • 网站运营需要什么条件北京网站建设是什么意思
  • 想建个网站找谁钢丝网片每平米价格
  • 做牙科设计的网站神马搜索推广
  • 一个网站能多个域名做不同站点wordpress 可道云
  • 网站开发的响应式和兼容性问题网络营销的现状和发展趋势
  • 赣州做网站优化电商网站开发总结与感受
  • 联客易网站建设制作wordpress 7z
  • 中国建设银行重庆网站首页wordpress免费虚拟主机
  • 青海住房和城乡建设厅网站公司网站建设多少费用
  • 企业网站优化兴田德润成都到西安机票
  • 外贸网络推广招聘杭州seo网站推广排名
  • 过年做那些网站致富网站新闻编辑怎么做
  • 做视频网站需要多大的带宽长春房产网 房小二
  • 网站排名优化原理在线做炫图网站
  • wordpress推广系统无锡网站seo
  • lol网站模板设计在线观看2014
  • 移动端网站制作案例thinkphp和wordpress区别
  • wordpress如何写网站c语言建设网站
  • 网站服务器管理维护中石化石油工程建设公司官方网站
  • 网站防红链接怎么做的如何做网站报价
  • 汉力建设网站网站换了域名做跳转
  • 流量统计网站推广法注册工作室和公司的区别
  • 新公司做网站有效果吗wordpress recent posts
  • 网站开发设计师岗位职责网站建设对我有什么好处
  • 常州网站建设方案策划宿州哪家做网站好
  • 著名的网站建设公司架设网站是自己架设服务器还是租服务器
  • 网站没收录了怎么办做网站大概价格