-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_app.py
77 lines (55 loc) · 2.3 KB
/
main_app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import tkinter as tk
import tkinter.ttk as ttk
# from app_model import Zaiko, Money, Auto_machine
from health import InputData
from app_view import Graph
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master.title("血圧測定") # ウィンドウタイトル
# self.master.geometry("1200x500") # ウィンドウサイズ(幅x高さ)
self.font = ("MSゴシック", "14")
# input data UI
self.input = InputData(self)
# グラフ表示
self.graph = Graph(self)
# # 商品リスト
# self.auto_machine = Auto_machine()
# # 在庫クラス
# self.zaiko = Zaiko()
# # 飲み物クラス
# self.v_drink = VDrink(self)
# # お金クラス
# self.initial_money()
# # メンテナンス切り替
# self.maintenance_button()
self.adjust_window_size()
def maintenance_button(self):
self.frame_lbl = tk.LabelFrame(root, text='メンテナンス', bd=2, relief=tk.GROOVE, padx=10, pady=10)
self.frame_lbl.grid(column=1, row=1, padx=10, pady=10, sticky="nsew")
# 売上ボタン
self.total_sales = tk.Button(self.frame_lbl, text="maintenance", font=self.font, command=self.mainte)
self.total_sales.grid(padx=5,pady=5)
def adjust_window_size(self):
# レイアウトを更新
self.master.update_idletasks()
# フレームの右端と下端を計算
frames = [self.graph.label_frame]
max_width = 0
max_height = 0
for frame in frames:
x = frame.winfo_x()
y = frame.winfo_y()
width = frame.winfo_width()
height = frame.winfo_height()
# 右端と下端の最大値を計算
max_width = max(max_width, x + width)
max_height = max(max_height, y + height)
self.w = int(self.master.winfo_screenwidth()/2) - max_width
self.h = int(self.master.winfo_screenheight()/2) - max_height
# 親ウィンドウのサイズを調整
self.master.geometry(f"{max_width + 20}x{max_height + 20}+{self.w}+{self.h}") # 余白を追加
if __name__ == '__main__':
root = tk.Tk()
app = Application(master = root)
app.mainloop()