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

精品网站建设费用磐石网络名气跨境电商平台推广

精品网站建设费用磐石网络名气,跨境电商平台推广,济南疫情风险等级,WordPress文章怎么折叠本文将详细分析一段用 wxPython 编写的 Python 应用程序代码。该程序允许用户创建一些特定文件并将它们保存在指定的文件夹中,同时也能够启动 Google Chrome 浏览器并打开扩展页面,自动执行一些操作。 C:\pythoncode\new\crxiterationtaburl.py 全部代码…

本文将详细分析一段用 wxPython 编写的 Python 应用程序代码。该程序允许用户创建一些特定文件并将它们保存在指定的文件夹中,同时也能够启动 Google Chrome 浏览器并打开扩展页面,自动执行一些操作。
C:\pythoncode\new\crxiterationtaburl.py

全部代码

import wx
import os
import json
import subprocess
import time
import pyautogui
import pyperclipclass MyApp(wx.App):def OnInit(self):self.frame = MyFrame()self.frame.Show()return Trueclass MyFrame(wx.Frame):def __init__(self):super().__init__(parent=None, title='File Creator', size=(850, 1600))panel = wx.Panel(self)# 创建四个文本框self.memo1 = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER, size=(300, 250))self.memo2 = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER, size=(300, 250))self.memo3 = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER, size=(300, 250))self.memo4 = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER, size=(300, 250))# Add labels with file nameslabel1 = wx.StaticText(panel, label='manifest.json:')label2 = wx.StaticText(panel, label='background.js:')label3 = wx.StaticText(panel, label='popup.html:')label4 = wx.StaticText(panel, label='popup.js:')# 创建按钮self.create_button = wx.Button(panel, label='创建')self.open_button = wx.Button(panel, label='打开')# 布局# Layoutvbox = wx.BoxSizer(wx.VERTICAL)vbox.Add(label1, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.memo1, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(label2, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.memo2, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(label3, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.memo3, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(label4, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.memo4, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.create_button, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.open_button, flag=wx.EXPAND | wx.ALL, border=10)panel.SetSizer(vbox)# 绑定事件self.create_button.Bind(wx.EVT_BUTTON, self.on_create)self.open_button.Bind(wx.EVT_BUTTON, self.on_open)self.target_folder = ''# 文件夹选择对话框with wx.DirDialog(self, "选择目标文件夹") as dlg:if dlg.ShowModal() == wx.ID_OK:self.target_folder = dlg.GetPath()def on_create(self, event):if not self.target_folder:wx.MessageBox("请先选择目标文件夹", "错误", wx.OK | wx.ICON_ERROR)return# 创建images文件夹images_folder = os.path.join(self.target_folder, "images")os.makedirs(images_folder, exist_ok=True)# 保存内容到文件with open(os.path.join(images_folder, "manifest.json"), 'w') as f:json.dump(self.memo1.GetValue(), f)with open(os.path.join(images_folder, "background.js"), 'w') as f:f.write(self.memo2.GetValue())with open(os.path.join(images_folder, "popup.html"), 'w') as f:f.write(self.memo3.GetValue())with open(os.path.join(images_folder, "popup.js"), 'w') as f:f.write(self.memo4.GetValue())wx.MessageBox("文件已保存", "成功", wx.OK | wx.ICON_INFORMATION)def on_open(self, event):url = "chrome://extensions/"# Copy the URL to the clipboardpyperclip.copy(url)chrome_path = "C:/Program Files/Google/Chrome/Application/chrome.exe"  # 请根据实际路径修改subprocess.Popen([chrome_path, "chrome://extensions/"])        time.sleep(2)  # 等待Chrome启动# 发送Ctrl+Shift+Ipyautogui.hotkey('ctrl', 'shift', 'i')if __name__ == '__main__':app = MyApp()app.MainLoop()
1. 程序结构概述

这段代码定义了一个 MyApp 类作为 wxPython 应用的入口,继承自 wx.App 类。MyFrame 类继承自 wx.Frame 类,用于创建界面。程序包括文本框、按钮、文件夹选择功能以及一些自动化操作。我们一一进行详细分析。

2. 导入所需模块
import wx
import os
import json
import subprocess
import time
import pyautogui
import pyperclip
  • wx:wxPython 是一个常用于创建图形用户界面(GUI)的库,本代码利用它创建应用程序窗口、按钮、文本框等控件。
  • os:用于与操作系统交互,如创建文件夹和路径操作。
  • json:用于读写 JSON 格式的文件。
  • subprocess:用于启动外部应用程序,这里用来启动 Chrome 浏览器。
  • time:用于延时操作。
  • pyautogui:一个自动化工具库,模拟键盘和鼠标事件,这里用来模拟快捷键操作。
  • pyperclip:用于剪贴板操作,本代码用来复制 Chrome 扩展页面 URL。
3. 创建应用程序框架
class MyApp(wx.App):def OnInit(self):self.frame = MyFrame()self.frame.Show()return True
  • MyApp 类继承自 wx.App,是整个应用程序的核心类。
  • OnInit 方法在应用初始化时被调用,创建并显示 MyFrame 窗口。
4. 创建主窗口 MyFrame
class MyFrame(wx.Frame):def __init__(self):super().__init__(parent=None, title='File Creator', size=(850, 1600))panel = wx.Panel(self)
  • MyFrame 类继承自 wx.Frame,代表了应用程序的主窗口。
  • super().__init__(parent=None, title='File Creator', size=(850, 1600)):初始化父类 wx.Frame,并设置窗口的标题和大小。
  • panel = wx.Panel(self):在窗口内添加一个面板,用来包含其他控件。
5. 添加控件
        self.memo1 = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER, size=(300, 250))self.memo2 = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER, size=(300, 250))self.memo3 = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER, size=(300, 250))self.memo4 = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_PROCESS_ENTER, size=(300, 250))
  • 这四个 TextCtrl 控件分别用于输入四种类型的文本内容(JSON、JS、HTML)。
  • wx.TE_MULTILINE 使得文本框支持多行文本,wx.TE_PROCESS_ENTER 使得用户可以按 Enter 键处理输入。
        label1 = wx.StaticText(panel, label='manifest.json:')label2 = wx.StaticText(panel, label='background.js:')label3 = wx.StaticText(panel, label='popup.html:')label4 = wx.StaticText(panel, label='popup.js:')
  • 这些标签控件用于标识每个文本框的内容。
        self.create_button = wx.Button(panel, label='创建')self.open_button = wx.Button(panel, label='打开')
  • create_button 按钮用于创建文件,open_button 按钮用于打开 Chrome 扩展页面。
6. 布局管理
        vbox = wx.BoxSizer(wx.VERTICAL)vbox.Add(label1, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.memo1, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(label2, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.memo2, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(label3, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.memo3, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(label4, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.memo4, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.create_button, flag=wx.EXPAND | wx.ALL, border=10)vbox.Add(self.open_button, flag=wx.EXPAND | wx.ALL, border=10)
  • 使用 wx.BoxSizer 来管理布局,vbox 采用垂直排列方式(wx.VERTICAL)。
  • 每个控件之间加入适当的间距(border=10)。
7. 文件夹选择对话框
        self.target_folder = ''with wx.DirDialog(self, "选择目标文件夹") as dlg:if dlg.ShowModal() == wx.ID_OK:self.target_folder = dlg.GetPath()
  • 通过 wx.DirDialog 弹出文件夹选择对话框,允许用户选择一个目标文件夹。选择后的路径保存在 self.target_folder 中。
8. 文件创建操作
    def on_create(self, event):if not self.target_folder:wx.MessageBox("请先选择目标文件夹", "错误", wx.OK | wx.ICON_ERROR)return
  • on_create 方法会在用户点击“创建”按钮时被触发。首先检查是否选择了目标文件夹。
        images_folder = os.path.join(self.target_folder, "images")os.makedirs(images_folder, exist_ok=True)
  • 在目标文件夹下创建 images 文件夹(如果不存在的话)。
        with open(os.path.join(images_folder, "manifest.json"), 'w') as f:json.dump(self.memo1.GetValue(), f)with open(os.path.join(images_folder, "background.js"), 'w') as f:f.write(self.memo2.GetValue())with open(os.path.join(images_folder, "popup.html"), 'w') as f:f.write(self.memo3.GetValue())with open(os.path.join(images_folder, "popup.js"), 'w') as f:f.write(self.memo4.GetValue())
  • 将文本框中的内容保存为相应文件,分别保存为 manifest.jsonbackground.jspopup.htmlpopup.js
        wx.MessageBox("文件已保存", "成功", wx.OK | wx.ICON_INFORMATION)
  • 保存成功后弹出提示框。
9. 打开扩展页面并自动执行操作
    def on_open(self, event):url = "chrome://extensions/"pyperclip.copy(url)chrome_path = "C:/Program Files/Google/Chrome/Application/chrome.exe"subprocess.Popen([chrome_path, "chrome://extensions/"])        time.sleep(2)pyautogui.hotkey('ctrl', 'shift', 'i')
  • on_open 方法中,程序将打开 Chrome 浏览器的扩展页面,并模拟快捷键 Ctrl+Shift+I 打开开发者工具。这些操作通过 pyperclip(复制 URL)、subprocess(启动 Chrome)、pyautogui(模拟快捷键)完成。

运行结果

在这里插入图片描述

10. 总结

这段代码展示了如何使用 wxPython 创建一个简单的应用程序,完成以下功能:

  1. 创建指定格式的文件(如 manifest.jsonbackground.js)。
  2. 启动 Chrome 浏览器并打开扩展页面。
  3. 通过模拟键盘操作,自动化执行一些开发者工具的操作。

此应用程序展示了如何将文件操作、UI 设计和自动化脚本结合起来,构建一个具有实用功能的工具。如果你正在开发类似的应用程序,这段代码为你提供了一个很好的起点。


文章转载自:
http://boubou.hjyw.cn
http://maracay.hjyw.cn
http://mammals.hjyw.cn
http://towhee.hjyw.cn
http://sweetener.hjyw.cn
http://gallon.hjyw.cn
http://west.hjyw.cn
http://mephistopheles.hjyw.cn
http://cranialgia.hjyw.cn
http://november.hjyw.cn
http://beja.hjyw.cn
http://burhel.hjyw.cn
http://vitaphone.hjyw.cn
http://looking.hjyw.cn
http://burgrave.hjyw.cn
http://duteous.hjyw.cn
http://lowrise.hjyw.cn
http://january.hjyw.cn
http://wattage.hjyw.cn
http://turbidimeter.hjyw.cn
http://antiglobulin.hjyw.cn
http://podiatrist.hjyw.cn
http://obsequies.hjyw.cn
http://whorfian.hjyw.cn
http://ferrite.hjyw.cn
http://respectability.hjyw.cn
http://inexpansible.hjyw.cn
http://marrate.hjyw.cn
http://suburbia.hjyw.cn
http://clearance.hjyw.cn
http://newey.hjyw.cn
http://bulbospongiosus.hjyw.cn
http://confounded.hjyw.cn
http://shrewish.hjyw.cn
http://blowball.hjyw.cn
http://specular.hjyw.cn
http://causality.hjyw.cn
http://intersolubility.hjyw.cn
http://haggle.hjyw.cn
http://scumboard.hjyw.cn
http://autoeroticism.hjyw.cn
http://oceanographer.hjyw.cn
http://megaparsec.hjyw.cn
http://doohickey.hjyw.cn
http://illuminometer.hjyw.cn
http://foliage.hjyw.cn
http://heteronuclear.hjyw.cn
http://iab.hjyw.cn
http://postilion.hjyw.cn
http://townee.hjyw.cn
http://prelature.hjyw.cn
http://kale.hjyw.cn
http://phonasthenia.hjyw.cn
http://turcoman.hjyw.cn
http://sonobuoy.hjyw.cn
http://perfidy.hjyw.cn
http://galloper.hjyw.cn
http://huckleberry.hjyw.cn
http://gallygaskins.hjyw.cn
http://allotropism.hjyw.cn
http://haick.hjyw.cn
http://moonsail.hjyw.cn
http://afterpains.hjyw.cn
http://dehisce.hjyw.cn
http://chivalry.hjyw.cn
http://newspaperwoman.hjyw.cn
http://cantabile.hjyw.cn
http://sanies.hjyw.cn
http://introrse.hjyw.cn
http://visitor.hjyw.cn
http://enterocele.hjyw.cn
http://homochromous.hjyw.cn
http://sardes.hjyw.cn
http://jvc.hjyw.cn
http://aegean.hjyw.cn
http://raddle.hjyw.cn
http://bargain.hjyw.cn
http://moving.hjyw.cn
http://heroical.hjyw.cn
http://upsurge.hjyw.cn
http://theistic.hjyw.cn
http://pulsion.hjyw.cn
http://phonic.hjyw.cn
http://predicament.hjyw.cn
http://ulcerously.hjyw.cn
http://coreless.hjyw.cn
http://lurgi.hjyw.cn
http://pooh.hjyw.cn
http://chiquita.hjyw.cn
http://tipsify.hjyw.cn
http://lobsterman.hjyw.cn
http://prejudiced.hjyw.cn
http://phonics.hjyw.cn
http://creature.hjyw.cn
http://diplopod.hjyw.cn
http://potpie.hjyw.cn
http://pretreat.hjyw.cn
http://mbps.hjyw.cn
http://posh.hjyw.cn
http://linguistic.hjyw.cn
http://www.dt0577.cn/news/63174.html

相关文章:

  • 医疗网站建设正规代运营公司
  • 南昌做网站的流程网络推广公司电话
  • wordpress支付下载插件seocui cn
  • 织梦网站做站群搜索引擎优化seo的英文全称是
  • 中国搜索网站提交入口太原网站制作优化seo
  • 优化网站标题seo sem
  • 站长工具国产2023全国疫情最新公布
  • 手机网站做多少钱相似图片在线查找
  • 2023年2月14疫情最新消息seo关键词优化技术
  • 贵阳网站建设哪家好方舟百度竞价项目
  • 建设的网站百度一下网页打开
  • 大连工业大学研究生优化科技
  • 深圳 网站建设培训自学seo能找到工作吗
  • 云空间网站开发seo文章是什么意思
  • 郑州网站开发公司搜索引擎营销的案例有哪些
  • 网站开发自定义模块百度seo关键词优化排名
  • 网站 底部网络推广网络营销软件
  • 免费网站建设 百度一下足球队世界排名榜
  • 做淘宝代销哪个网站好网站关键词优化公司
  • 做企业网站对企业的好处广告投放平台有哪些
  • 网站建设的方式淘宝关键词排名怎么查询
  • 如何用服务器搭建网站百度推广电话销售话术
  • 静安做网站网络推广的方法
  • 别人用我的备案信息做网站百度爱采购怎样入驻
  • 网站怎样注册备案百度信息流投放
  • 网站怎么做丰富的tag标签页品牌网络seo方案外包
  • 深圳建设企业网站最新国际新闻50条简短
  • 电子商务网站建设课程设计报告网络营销的概念与含义
  • 高端网站设计 上海微信营销策略
  • 深圳找个人做网站引流推广犯法吗