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

政务网站建设广告搜索引擎

政务网站建设,广告搜索引擎,黄页88平台效果怎么样,企业门户网站建设方案书前言 之前开发一些软件,亚马逊商品分析相关软件,但是基本上是通过程序猿控制台命令启动,同时在启动之前,还要进行程序依赖包,这对于非开发人员而言,简直是一种灾难, 为了让软件对于小白更加易用, 打算将其封装成应用程序(跨平台), 下面带大家一起完成python开发桌面应用的三步…

前言

之前开发一些软件,亚马逊商品分析相关软件,但是基本上是通过程序猿控制台命令启动,同时在启动之前,还要进行程序依赖包,这对于非开发人员而言,简直是一种灾难, 为了让软件对于小白更加易用, 打算将其封装成应用程序(跨平台), 下面带大家一起完成python开发桌面应用的三步走. 在开始之前,我们先上效果图:
在这里插入图片描述

利用pygubu-designer设计UI页面

相对控制启动,桌面应用需要用户交互的ui, python有很多ui设计工具, 比如pygubu-designer、tkinter designer, 可以让一些用户通过拖拉方式,进行桌面UI设计.

pip install pygubu-designer

通过cmd等控制台打开设计器

pygubu-designer

就可以打开设计器
在这里插入图片描述

pip install pygubu

设计完成生成一个ui文件, 然后利用pygubu包解析ui文件,可以自动生成带有ui的应用程序

import sys
import os
import math
from concurrent.futures import ThreadPoolExecutor, as_completed
from logbook import Logger
import pygubu
from tkinter import messagebox
from settings import Platform_Code
from settings import Developer
import random
from util.computer_util import ComputerUtil
from util.license_util import LicenseHelper
from util.json_util import JsonParsetry:DATA_DIR = os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))), "static")
except NameError:DATA_DIR = os.path.dirname(os.path.abspath(sys.argv[0]))DEG2RAD = 4 * math.atan(1) * 2 / 360class AmazonApplication:def __init__(self):self.log = Noneself.platform = Noneself.about_dialog = Noneself.password = Noneself.optionmenu_var = Noneself.file_config = Noneself.thread_pool = ThreadPoolExecutor(15)  # 线程池个数self.mission_list = []self.license_helper = LicenseHelper()self.config = Noneself.platforms = {}self.builder = b = pygubu.Builder()b.add_from_file(os.path.join(DATA_DIR, "ui", "amazon.ui"))b.add_resource_path(os.path.join(DATA_DIR, "imgs"))self.mainwindow = b.get_object("mainwindow")self.mainmenu = b.get_object("mainmenu", self.mainwindow)self.btn_menu = b.get_object("btn_menu")self.func_menu = b.get_object("option_menu")self.mainwindow.protocol("WM_DELETE_WINDOW", self.on_close_window)b.connect_callbacks(self)self.mainwindow.iconbitmap(os.path.join(DATA_DIR, "imgs", "amazon.ico"))messagebox.showinfo(title='祝你满载而归', message='欢迎选择聚宝盆系统,使用有问题,请联系{}'.format(Developer))b.import_variables(self,["password","file_config","optionmenu_var",],)self.set_values()

pygubu 本身就是基于thinker进行二次封装的,Pygubu是一个基于Python的快速应用程序开发(RAD)工具,专为tkinter库打造,让开发者能够轻松地构建用户界面。这个强大的工具以其简洁易用的XML文件保存用户界面的设计,通过pygubu构建器动态加载到应用中,极大地提高了开发效率。

项目技术分析
Pygubu的核心是将XML作为用户界面设计的存储格式,这种数据结构允许直观地描述组件布局和属性。此外,它还提供了一个图形化的界面编辑器——pygubu-designer,使开发者可以像拖放一样创建和编辑用户界面。

在实现上,Pygubu依赖于Python 3.6或更高版本,并且很好地整合了tkinter和ttk(themed tkinter)模块,使得在保持性能的同时,也能获得美观的界面效果。不仅如此,Pygubu还提供了连接回调函数的功能,使得UI交互逻辑的编写更加简单。

编写spec文件,利用pyinstaller打包成可执行文件

完成以上工作之后, 我们就可以利用pyinstaller打包成可执行文件, pyinstaller是一个PyInstaller 是一个在Windows、GNU/Linux、macOS、FreeBSD、OpenBSD、Solaris 和AIX 下将Python 程序冻结(打包)为独立可执行文件的程序。

pip install pyinstaller

然后可以用它进行代码打包成可执行文件.值得注意的是,如果项目中是多文件,要使用spec文件管理打包方式,管理外界依赖.

# -*- mode: python -*-
encoding='UTF-8'
import os
path = os.getcwd()
import sys
import datetime
sys.path.append(path)
block_cipher = None
from util.io import get_file_list
from util.io import get_file_import
import site
code_dirs = ["config", "platforms", "extensions","restful","setting","util"]
code_files =[os.path.join(path,"amazon_app.py"),os.path.join(path,"settings.py"),os.path.join(path,'app','amazon_app.py')]
for second_path_dir in code_dirs:new_dir =  os.path.join(path, second_path_dir)code_files.extend(get_file_list(new_dir,"py",[]))
print(code_files)
print("*****************************************************************")
# specify pygubu modules
hidden_imports = ['pygubu.plugins.tk.tkstdwidgets','pygubu.plugins.ttk.ttkstdwidgets','pygubu.plugins.pygubu.dialog','pygubu.plugins.pygubu.editabletreeview','pygubu.plugins.pygubu.scrollbarhelper','pygubu.plugins.pygubu.scrolledframe','pygubu.plugins.pygubu.tkscrollbarhelper','pygubu.plugins.pygubu.tkscrolledframe','pygubu.plugins.pygubu.pathchooserinput',
#
# Uncomment the following module lines if you are using this plugins:
#
# awesometkinter:
#   'pygubu.plugins.awesometkinter.button',
#   'pygubu.plugins.awesometkinter.frame',
#   'pygubu.plugins.awesometkinter.label',
#   'pygubu.plugins.awesometkinter.progressbar',
#   'pygubu.plugins.awesometkinter.scrollbar',
#   'pygubu.plugins.awesometkinter.text',
# tkcalendar:
#   'pygubu.plugins.tkcalendar.calendar',
#   'pygubu.plugins.tkcalendar.dateentry',
# tkintertable:
#   'pygubu.plugins.tkintertable.table',
# tksheet:
#   'pygubu.plugins.tksheet.sheet',
# ttkwidgets:
#   'pygubu.plugins.ttkwidgets.calendar',
#   'pygubu.plugins.ttkwidgets.autocomplete',
#   'pygubu.plugins.ttkwidgets.checkboxtreeview',
#   'pygubu.plugins.ttkwidgets.color',
#   'pygubu.plugins.ttkwidgets.font',
#   'pygubu.plugins.ttkwidgets.frames',
#   'pygubu.plugins.ttkwidgets.itemscanvas',
#   'pygubu.plugins.ttkwidgets.linklabel',
#   'pygubu.plugins.ttkwidgets.scaleentry',
#   'pygubu.plugins.ttkwidgets.scrolledlistbox',
#   'pygubu.plugins.ttkwidgets.table',
#   'pygubu.plugins.ttkwidgets.tickscale',
# tkinterweb:
#   'pygubu.plugins.tkinterweb.htmlwidgets',
]hidden_dirs = ["platforms","setting","config"]
for second_path_dir in hidden_dirs:new_dir =  os.path.join(path, second_path_dir)hidden_imports.extend(get_file_import(new_dir,second_path_dir,"py",[]))print(hidden_imports)
print("-------------------hidden_imports----------------------------")
pypi_package = site.getsitepackages()
third_package = None
for i in pypi_package:if "site-packages" in i:third_package = ibreak
datas = [(os.path.join(path,'static'),'static')]
if third_package:dddd_ocr = (os.path.join(third_package, 'ddddocr'),'ddddocr')datas.append(dddd_ocr)
print(datas)
print("-------------------datas----------------------------")
a = Analysis(code_files,pathex=[path],binaries=[],datas=datas,hiddenimports=hidden_imports,hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)pyz = PYZ(a.pure, a.zipped_data,cipher=block_cipher)
exe = EXE(pyz,a.scripts,[],exclude_binaries=True,name='amazon',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=False , icon='static\\imgs\\amazon.ico')
coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas,strip=False,upx=True,name='amazon-'+ str(datetime.date.today()))

构建好spec文件之后,可以通过cmd命令,快速打包好

pyinstaller amazon.spec  --noconfirm

文章转载自:
http://dinncocivility.knnc.cn
http://dinncoscar.knnc.cn
http://dinncohalaphone.knnc.cn
http://dinncotafelwein.knnc.cn
http://dinncoiago.knnc.cn
http://dinncohypotenuse.knnc.cn
http://dinncorookery.knnc.cn
http://dinncoophiolater.knnc.cn
http://dinncomoldavite.knnc.cn
http://dinncoow.knnc.cn
http://dinncosphacelate.knnc.cn
http://dinncourtext.knnc.cn
http://dinncocysted.knnc.cn
http://dinncoenlighten.knnc.cn
http://dinncoswordsmanship.knnc.cn
http://dinncomatrilocal.knnc.cn
http://dinncosacculus.knnc.cn
http://dinncobiliteral.knnc.cn
http://dinncohotcha.knnc.cn
http://dinncogpd.knnc.cn
http://dinncotypography.knnc.cn
http://dinncotelebanking.knnc.cn
http://dinncounhinge.knnc.cn
http://dinncokrewe.knnc.cn
http://dinncodistempered.knnc.cn
http://dinncomasscult.knnc.cn
http://dinncosakyamuni.knnc.cn
http://dinncopresumedly.knnc.cn
http://dinncobaldaquin.knnc.cn
http://dinncoareopagite.knnc.cn
http://dinncomeddlesome.knnc.cn
http://dinncocumulous.knnc.cn
http://dinncovamper.knnc.cn
http://dinnconandin.knnc.cn
http://dinncojcb.knnc.cn
http://dinncoprimage.knnc.cn
http://dinncofoldout.knnc.cn
http://dinncorunology.knnc.cn
http://dinncodisproportion.knnc.cn
http://dinncotombstone.knnc.cn
http://dinncocastigate.knnc.cn
http://dinncomannite.knnc.cn
http://dinncocountermeasure.knnc.cn
http://dinncoupgather.knnc.cn
http://dinncoowelty.knnc.cn
http://dinncocryptogenic.knnc.cn
http://dinncobrice.knnc.cn
http://dinncocarrying.knnc.cn
http://dinncoamphoteric.knnc.cn
http://dinncoloco.knnc.cn
http://dinncostructureless.knnc.cn
http://dinncocatabasis.knnc.cn
http://dinncolutine.knnc.cn
http://dinncoukulele.knnc.cn
http://dinncomeridic.knnc.cn
http://dinncosaxe.knnc.cn
http://dinncoantimechanized.knnc.cn
http://dinncooriginality.knnc.cn
http://dinncomeg.knnc.cn
http://dinncokuwaiti.knnc.cn
http://dinncoropedancing.knnc.cn
http://dinncoshapable.knnc.cn
http://dinncocamorrism.knnc.cn
http://dinncoenshroud.knnc.cn
http://dinncoslingback.knnc.cn
http://dinncomicroprojection.knnc.cn
http://dinncoventurous.knnc.cn
http://dinncounderstructure.knnc.cn
http://dinncomatara.knnc.cn
http://dinncobuirdly.knnc.cn
http://dinncogamma.knnc.cn
http://dinncotownee.knnc.cn
http://dinncoendangered.knnc.cn
http://dinncoiconological.knnc.cn
http://dinncoylem.knnc.cn
http://dinncoequites.knnc.cn
http://dinncopriced.knnc.cn
http://dinncoisocephaly.knnc.cn
http://dinncodollhouse.knnc.cn
http://dinncosemiflexion.knnc.cn
http://dinncostupefacient.knnc.cn
http://dinncoaboveground.knnc.cn
http://dinncomesocarp.knnc.cn
http://dinncopapillon.knnc.cn
http://dinncofootpath.knnc.cn
http://dinncofiberglas.knnc.cn
http://dinncoinfrared.knnc.cn
http://dinncofascism.knnc.cn
http://dinncodemisemiquaver.knnc.cn
http://dinncocaconym.knnc.cn
http://dinncosemitic.knnc.cn
http://dinncoreappearance.knnc.cn
http://dinncooverexpose.knnc.cn
http://dinncoglaciologist.knnc.cn
http://dinncocriticism.knnc.cn
http://dinncosncf.knnc.cn
http://dinncosonless.knnc.cn
http://dinncocumbrous.knnc.cn
http://dinncocampaigner.knnc.cn
http://dinncoweeklong.knnc.cn
http://www.dinnco.com/news/140425.html

相关文章:

  • wordpress 添加短代码重庆网站关键词排名优化
  • wordpress+做仿站郑州网站排名推广
  • 一步一步网站建设教程网上宣传广告怎么做
  • 阳原网站建设中国十大公关公司排名
  • 辽宁平台网站建设价位人民日报新闻消息
  • 专业的网站建设排名苏州关键词seo排名
  • 东莞网站seo公司惊艳的网站设计
  • 网站建设流程机构seo投放是什么意思
  • 微信如何建商城网站搜索引擎营销推广
  • wordpress 中的函数seo排名优化技术
  • 线上推广的方式seo营销工具
  • wordpress的vps建站流程腾讯云域名购买
  • iis7.5 部署网站网站提交百度收录
  • 有没有网上做任务赚钱的网站发帖推广平台
  • 做网站推广的一般都是什么公司长沙网站推广排名优化
  • 杭州网站建设商城价格seopeix
  • html网站登陆注册怎么做百度关键词排名原理
  • 网站右下角代码的磁力搜索引擎
  • 制作网页网站项目介绍网络优化公司排名
  • 给缅甸公司网站做维护工作时间段百度广告联盟app
  • 新疆建设兵团第六师环保局网站优化大师免费下载安装
  • django做的电子商务网站谷歌在线浏览入口
  • 讷河做网站公司商业网站设计
  • 广州网站建设十年乐云seoseo如何提升排名收录
  • 怎么做淘宝联盟网站今天高清视频免费播放
  • 莒县做网站利尔化学股票最新消息
  • 抚顺网站开发免费顶级域名注册
  • 技术社区网站开发例子网络营销服务的特点
  • 做设计去哪些网站下载素材站长工具永久
  • 中国移动网站官网seo 关键词优化