Files
SOMEIP/code_generator/backup/old/main.py

113 lines
5.0 KiB
Python
Raw Normal View History

2026-06-09 20:16:47 +08:00
# coding=utf-8
import time
import tkinter as tk
from tkinter import Button, Checkbutton, Entry, Image, IntVar, Label, StringVar, scrolledtext, ttk, filedialog, messagebox
from datetime import datetime
from string import Template
import tkinter_ui as gui
import template as tmpl
# 获取当前时间
def Time(): #getCurrentTime
current_time = time.strftime('[%Y-%m-%d %H:%M:%S]',time.localtime(time.time()))
return current_time
if __name__ == "__main__":
# #全局风格类型变量
# entry_width = 30
# short_entry_width = 15
# font_pix = 15
# font_type = "微软雅黑"
# #window.geometry('1000x500+0+0')
# #window.resizable(0,0)
# #setWindowCenter(window, 700, 400) #窗口居中,传入窗口句柄和窗口宽高
#主窗口
#实例化一个窗体
window = gui.instantiate_the_window("Someip Service Code Generator") #窗口名
note = gui.instantiate_the_note(window)
#在窗体win中创建一个Notebook并承载以下两个选项卡
TabMain = gui.instantiate_the_tab(note, "Main") #选项卡1
Tab2 = gui.instantiate_the_tab(note, "Tab2")
## 以下为Main选项卡
# 第一组 Create/Modify
group_app = gui.instantiate_the_group(TabMain,"App") #创建Frame一组
#设置输入框控件使用textvariable参数来接收变量
# 定义输入框1
label1 = Label(group_app, text='Run Config File Path')
label1.grid(sticky="w", padx=15)
entry1 = Entry(group_app, width=tmpl.entry_width, textvariable=tmpl.runConfigFilename)
entry1.grid(row=0,column=1,sticky="w")
entry1.config(state='normal') #'readonly'
# Button(group_app, text='...', command=open_file).grid(row=0, column=2)
# 定义输入框2
label2 = Label(group_app, text='App name')
label2.grid(sticky="w", padx=15)
entry2 = Entry(group_app, width=tmpl.entry_width, textvariable=tmpl.appName)
entry2.grid(row=1,column=1,sticky="w")
# 定义输入框3
label3 = Label(group_app, text='Service ID')
label3.grid(sticky="w", padx=15)
entry3 = Entry(group_app, width=tmpl.entry_width, textvariable=tmpl.serviceID)
entry3.grid(row=2,column=1)
entry3.config(state='readonly')
# 定义输入框4
label4 = Label(group_app, text='Instance ID')
label4.grid(sticky="w", padx=15)
entry4 = Entry(group_app, width=tmpl.ntry_width, textvariable=tmpl.instanceID)
entry4.grid(row=3,column=1)
entry4.config(state='readonly')
# 设置复选框控件使用variable参数来接收变量
check0 = Checkbutton(window, text="use_tcp",variable = tmpl.use_tcp,onvalue=1,offvalue=0)
check1 = Checkbutton(window, text="offer_F-F_method",variable = tmpl.offer_F_F_method,onvalue=1,offvalue=0, command=tmpl.entryState)
check2 = Checkbutton(window, text="offer_R-R_method",variable = tmpl.offer_R_R_method,onvalue=1,offvalue=0, command=tmpl.entryState)
check3 = Checkbutton(window, text="offer_setter",variable = tmpl.offer_setter,onvalue=1,offvalue=0, command=tmpl.entryState)
check4 = Checkbutton(window, text="offer_getter",variable = tmpl.offer_getter,onvalue=1,offvalue=0, command=tmpl.entryState)
check56 = Checkbutton(window, text="offer_event",variable = tmpl.offer_event,onvalue=1,offvalue=0, command=tmpl.entryState)
check78 = Checkbutton(window, text="offer_field_notifier",variable = tmpl.offer_field_notifier,onvalue=1,offvalue=0, command=tmpl.entryState)
check0.grid(sticky="w")
check1.grid(sticky="w")
check2.grid(sticky="w")
check3.grid(sticky="w")
check4.grid(sticky="w")
check56.grid(sticky="w")
check78.grid(sticky="w")
# 设置各种服务类型的IDs使用textvariable参数来接收变量
idEntry1 = Entry(window, width=tmpl.entry_width, textvariable=tmpl.F_F_method_ids)
idEntry2 = Entry(window, width=tmpl.entry_width, textvariable=tmpl.R_R_method_ids)
idEntry3 = Entry(window, width=tmpl.entry_width, textvariable=tmpl.setter_ids)
idEntry4 = Entry(window, width=tmpl.entry_width, textvariable=tmpl.getter_ids)
idEntry5 = Entry(window, width=tmpl.short_entry_width, textvariable=tmpl.eventgroup_ids)
idEntry6 = Entry(window, width=tmpl.short_entry_width, textvariable=tmpl.event_ids)
idEntry7 = Entry(window, width=tmpl.short_entry_width, textvariable=tmpl.ield_eventgroup_ids)
idEntry8 = Entry(window, width=tmpl.short_entry_width, textvariable=tmpl.field_event_ids)
idEntry1.grid_forget()
idEntry2.grid_forget()
idEntry3.grid_forget()
idEntry4.grid_forget()
idEntry5.grid_forget()
idEntry6.grid_forget()
idEntry7.grid_forget()
idEntry8.grid_forget()
# 按钮
button1 = Button(window, text="Generate", command=tmpl.generate)
button1.grid(row=11, column=0, sticky="w", padx=15, pady=5)
button2 = Button(window, text='Exit',command=window.quit)
button2.grid(row=11, column=1, sticky="e", padx=15, pady=5)
window.mainloop()