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

百度网站推广费用多少深圳网站做优化哪家公司好

百度网站推广费用多少,深圳网站做优化哪家公司好,wordpress 医院主题,上海网站备案要求吗中学物理模拟实验Python程序集成打包 将多个中学物理模拟实验程序集成到到一个启动界面中,相关介绍&源码可见:https://blog.csdn.net/cnds123/article/details/148844683 ,并用PyInstaller打包使用,希望在没有Python环境的机器…

中学物理模拟实验Python程序集成打包

将多个中学物理模拟实验程序集成到到一个启动界面中,相关介绍&源码可见:https://blog.csdn.net/cnds123/article/details/148844683 ,并用PyInstaller打包使用,希望在没有Python环境的机器上运行,方便使用。

打包成品下载地址见附录。

先看运行效果:

具体过程如下

1.目录结构

2. 创建主启动器界面程序

新建一个文件main_launcher.py,内容如下:

import tkinter as tk
from tkinter import ttk
from 浮力定律模拟 import BuoyancySimulationApp
from 杠杆平衡条件模拟 import LeverSimulator
from 匀速和匀变速直线运动对比 import MotionSimulator
from 凸透镜成像模拟 import ConvexLensSimulator
from 凹透镜成像模拟 import ConcaveLensSimulator
from 抛物运动模拟 import ProjectileMotionApp
from 摩檫力模拟 import FrictionSimulationApp
from 力的合成模拟 import ForceSimulator
from 力的分解模拟 import ForceDecomposer
from 斜面受力分析 import InclinedPlaneSimulator
from 两物体弹性碰撞模拟 import ElasticCollisionAppclass MainLauncher:def __init__(self, root):self.root = rootself.root.title("物理模拟实验")self.root.geometry("400x650")# 设置主界面按钮ttk.Button(root, text="浮力定律模拟", command=lambda: self.open_app(BuoyancySimulationApp)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="杠杆平衡条件模拟", command=lambda: self.open_app(LeverSimulator)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="匀速和匀变速直线运动对比", command=lambda: self.open_app(MotionSimulator)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="凸透镜成像模拟", command=lambda: self.open_app(ConvexLensSimulator)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="凹透镜成像模拟", command=lambda: self.open_app(ConcaveLensSimulator)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="抛物运动模拟", command=lambda: self.open_app(ProjectileMotionApp)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="摩檫力模拟", command=lambda: self.open_app(FrictionSimulationApp)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="力的合成模拟", command=lambda: self.open_app(ForceSimulator)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="力的分解模拟", command=lambda: self.open_app(ForceDecomposer)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="斜面受力分析", command=lambda: self.open_app(InclinedPlaneSimulator)).pack(pady=10, fill=tk.X, padx=50)ttk.Button(root, text="两物体弹性碰撞模拟", command=lambda: self.open_app(ElasticCollisionApp)).pack(pady=10, fill=tk.X, padx=50)# 添加说明按钮ttk.Button(root, text="使用说明", command=self.show_instructions).pack(pady=15, fill=tk.X, padx=50)def open_app(self, AppClass):# 使用 Toplevel 创建子窗口new_window = tk.Toplevel(self.root)app = AppClass(new_window)def show_instructions(self):"""显示使用说明窗口"""# 创建说明窗口instructions_window = tk.Toplevel(self.root)instructions_window.title("使用说明")instructions_window.geometry("620x500")# 添加标题title_label = ttk.Label(instructions_window, text="物理模拟实验室使用说明", font=("Arial", 14, "bold"))title_label.pack(pady=10)# 创建带滚动条的文本框框架frame = ttk.Frame(instructions_window)frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=5)# 创建滚动条scrollbar = ttk.Scrollbar(frame)scrollbar.pack(side=tk.RIGHT, fill=tk.Y)# 创建文本框text_box = tk.Text(frame, wrap=tk.WORD, yscrollcommand=scrollbar.set,font=("Arial", 11), padx=10, pady=10)text_box.pack(fill=tk.BOTH, expand=True)# 配置滚动条scrollbar.config(command=text_box.yview)# 添加说明内容instructions = """======== 物理模拟实验使用说明 ========本软件包含多个物理实验模拟模块,帮助您直观理解各种物理现象。设计:WKJ版本号: 1.01特别提示,相关知识&源码:https://blog.csdn.net/cnds123/article/details/148844683使用提示:- 点击相应按钮打开物理模拟模块- 每个模块都有参数调整控件和可视化展示- 部分模块包含动画演示功能- 计算结果会实时更新显示注意:
理实验模拟程序和实体实验两者是共生协同的关系,物理实验模拟程序绝非对实体实验的简单替代。
模拟程序中点击鼠标调整参数的动作,无法替代真实接触身临其境带来的现实反馈——耐心细致的动手能力、环境影响误差处理、物理直觉判断处置等体验。"""# 插入文本并设置为只读text_box.insert(tk.END, instructions)text_box.config(state=tk.DISABLED)  # 设置为只读# 添加关闭按钮close_button = ttk.Button(instructions_window, text="关闭", command=instructions_window.destroy)close_button.pack(pady=10)if __name__ == "__main__":root = tk.Tk()app = MainLauncher(root)root.mainloop()

3. 问题处理

a.点击“杠杆平衡条件模拟”按钮报错

Exception in Tkinter callback

Traceback (most recent call last):

  File "D:\Python\Python312\Lib\tkinter\__init__.py", line 1948, in __call__

    return self.func(*args)

           ^^^^^^^^^^^^^^^^

  File "C:\Users\Wang\Desktop\新建文件夹 (12)\集成打包2\中学物理实验模拟程序启动.py", line 23, in <lambda>

    command=lambda: self.open_app(LeverSimulator)

                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "C:\Users\Wang\Desktop\新建文件夹 (12)\集成打包2\中学物理实验模拟程序启动.py", line 29, in open_app

    app = AppClass(new_window)

          ^^^^^^^^^^^^^^^^^^^^

TypeError: LeverSimulator.__init__() takes 1 positional argument but 2 were given

解决方案:

修改杠杆平衡条件模拟.py中的LeverSimulator类,使其接受一个可选的master参数:

class LeverSimulator:

    def __init__(self, master=None):  # 添加 master 参数

        if master:

            self.root = master

        else:

            self.root = tk.Tk()

            self.root.title("杠杆原理模拟器 - 三类杠杆演示")

            self.root.geometry("1200x960")

            self.root.configure(bg='lightblue')

       

        # 其余代码保持不变...

        self.canvas_width = 1100

        self.canvas_height = 400

        # ... 其他初始化代码 ...

匀速和匀变速直线运动对比,也需要类似处理。

b.力的分解界面变小了,而单独运行力的分解界面是正常的,如何处理?

解决方案:修改力的分解模拟程序,添加最小尺寸限制:

class ForceDecomposer:

    def __init__(self, root):

        self.root = root

        self.root.title("力的分解模拟器")

       

        self.root.minsize(800, 500)  # 设置最小尺寸       

        # 其余代码保持不变...

4.使用 PyInstaller 打包

pyinstaller --onefile --windowed --name "物理模拟实验室" main_launcher.py

附录

打包成品,在win10可用!可见:https://download.csdn.net/download/cnds123/91336927

 

 


文章转载自:

http://Bcz47C1H.qxrct.cn
http://7UdZ4Cw1.qxrct.cn
http://TOstSmLN.qxrct.cn
http://TBxocMr8.qxrct.cn
http://4HkdLKMV.qxrct.cn
http://EvhbLN2H.qxrct.cn
http://OJ13KFdI.qxrct.cn
http://ImP1eMFq.qxrct.cn
http://pCydJ5k8.qxrct.cn
http://YWKmmsLB.qxrct.cn
http://VQgb01gN.qxrct.cn
http://1ECvsen7.qxrct.cn
http://YqYbJLBh.qxrct.cn
http://LFzE9PN1.qxrct.cn
http://aUr26iZp.qxrct.cn
http://TqxKDvQI.qxrct.cn
http://Ab6yYkwm.qxrct.cn
http://tyuvuwFp.qxrct.cn
http://YmucUAWt.qxrct.cn
http://kc1wNUhO.qxrct.cn
http://F6GrseBs.qxrct.cn
http://uZyS7S2D.qxrct.cn
http://SlxxpGRG.qxrct.cn
http://UbFwjk5x.qxrct.cn
http://cURqXIno.qxrct.cn
http://j6sybw7s.qxrct.cn
http://pYtJqQwM.qxrct.cn
http://ceoaPndq.qxrct.cn
http://9ZJi5aaS.qxrct.cn
http://KUK9ZSNB.qxrct.cn
http://www.dtcms.com/wzjs/722931.html

相关文章:

  • 潍坊哪家做网站做的最好台州椒江区热销企业网站搭建
  • 建站之星做网站wordpress本地批量传文章
  • 网站开发与管理对应的职业及岗位南京专业建站
  • 网站跟软件有什么区别是什么网站开发设计资料
  • 开发软件的成本预算网站seo优化服务
  • 门户网站开发要求正规网站制作公司有哪些
  • 给网站划分栏目dede网站地图模板
  • 意大利语网站建设公司有网站有什么好处
  • 大型网站建设公司排名小程序定制外包
  • 桂林网站优化注意事项建筑清单网
  • 随县网站建设怎么做二维码进入公司网站
  • 如此查询网站名字是否注册wordpress有什么有趣的插件
  • 怎么样给网站的服务器续费外贸上哪个网站开发客户
  • 可以做分析图的地图网站在线做试卷的网站
  • 2015做啥网站能致富商洛网站建设
  • 社区论坛自助建站网wordpress get the time
  • 什么是网站链接优化免费招聘网站平台
  • 网站建设与制作教程建筑工程造价信息网
  • 网站微信建设运维经验分享图自媒体可做外链网站
  • 网站对比网站的二维码怎么做的
  • 东兴网站建设重庆建设招标网站
  • 网站建设的竞争力做网站到底需要什么
  • 天津seo网站排名优化公司创业找项目
  • 北京pc端网站开发小程序开发公司
  • 毕业设计做系统网站设计教育网站
  • 自己建个购物网站没有网站做淘宝客
  • 安宁网站建设与制作做淘宝网站要多少钱
  • 免费做代理的网站ps做ppt模板怎么下载网站
  • 网站做排名有用吗沧州网站推广优化
  • 给国外网站做流量海南注册公司怎么注册