添加basicwindow
Build and Publish / Run (push) Successful in 48s
Details
Build and Publish / Run (push) Successful in 48s
Details
This commit is contained in:
parent
b93fa15176
commit
768a35a2c5
|
@ -1,4 +1,5 @@
|
|||
from magictk.window import Window
|
||||
from magictk.basicwindow import Tk
|
||||
from magictk.button import Button, ButtonFill
|
||||
from magictk.progressbar import ProgressBar
|
||||
from magictk.checkbox import Checkbox, RadioGroup
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
import tkinter
|
||||
from tkinter import ttk
|
||||
try:
|
||||
import color_tmpl
|
||||
except:
|
||||
from magictk import color_tmpl
|
||||
try:
|
||||
import photoload
|
||||
except:
|
||||
from magictk import photoload
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
import time
|
||||
import tkinter
|
||||
import os
|
||||
from tkinter import ttk
|
||||
from magictk import color_tmpl
|
||||
from magictk import _window_ctl
|
||||
from magictk import _window_size
|
||||
from magictk import workspace
|
||||
from magictk import photoload
|
||||
import sys
|
||||
|
||||
WIN_INF = -10000
|
||||
|
||||
|
||||
class Tk(ttk.Frame):
|
||||
x = 200
|
||||
y = 200
|
||||
w = 500
|
||||
h = 350
|
||||
color = color_tmpl.default_color
|
||||
anim = []
|
||||
FRAME_INFO = "Normal"
|
||||
__break_win = True
|
||||
|
||||
def __load_color(self) -> None:
|
||||
self.main_tk.configure(bg=self.color["background"])
|
||||
self.style.configure(
|
||||
'Test1.TFrame', background="#FF0000")
|
||||
self.style.configure(
|
||||
'Test2.TFrame', background="#00FF00")
|
||||
self.style.configure(
|
||||
'Test3.TFrame', background="#0000FF")
|
||||
self.style.configure(
|
||||
'Main.TFrame', background=self.color["background"])
|
||||
self.style.configure(
|
||||
'Root.TFrame', background=self.color["background"])
|
||||
self.style.configure(
|
||||
'Splitline.TFrame', background=self.color["border_light"])
|
||||
self.style.configure(
|
||||
'BarExitButton.TFrame', background=self.color["background"])
|
||||
self.style.configure(
|
||||
'LabBarZoomButton.TLabel', background=self.color["background"])
|
||||
self.style.configure(
|
||||
'LabBarIcon.TLabel', background=self.color["background"])
|
||||
self.style.configure(
|
||||
'LabTitle.TLabel', background=self.color["background"], fg=self.color["primary_text"])
|
||||
self.style.configure(
|
||||
'BarIconicButton.TFrame', background=self.color["background"])
|
||||
self.style.configure(
|
||||
'Size.TFrame', background=self.color["background"])
|
||||
self.style.configure(
|
||||
'LabelTitle.TFrame', background=self.color["background"])
|
||||
|
||||
def __init__(self, w=500, h=350, title="MagicTk", color_list: dict = None) -> None:
|
||||
self.root = self
|
||||
self.title = title
|
||||
self.w = w
|
||||
self.h = h
|
||||
if (color_list is not None):
|
||||
self.color = color_list
|
||||
self.main_tk = tkinter.Tk()
|
||||
self.style = ttk.Style()
|
||||
self.__load_color()
|
||||
ttk.Widget.__init__(self, self.main_tk, "ttk::frame", {
|
||||
"style": "Main.TFrame"})
|
||||
self.main_tk.title(title)
|
||||
self.place(x=0, y=0, relwidth=1, relheight=1)
|
||||
self.main_tk.geometry(
|
||||
f"{self.w}x{self.h}+{self.x}+{self.y}")
|
||||
|
||||
def mainloop(self) -> None:
|
||||
t_start = time.time()
|
||||
while (self.__break_win):
|
||||
delta_t = time.time()-t_start
|
||||
if (delta_t > 0.02): # flash animation
|
||||
t_start = time.time()
|
||||
n = 0
|
||||
for i in self.anim:
|
||||
if (i is not None):
|
||||
retn = i()
|
||||
if (retn == -1):
|
||||
self.anim[n] = None
|
||||
n += 1
|
||||
self.anim = [i for i in self.anim if i is not None]
|
||||
else:
|
||||
pass
|
||||
self.main_tk.update()
|
||||
self.main_tk.destroy()
|
||||
self.__break_win = None
|
||||
|
||||
def quit(self) -> None:
|
||||
self.__break_win = False
|
|
@ -248,17 +248,19 @@ class Entry:
|
|||
def __bind_event(self):
|
||||
def closecallback(obj):
|
||||
if (self.__is_hover == 1):
|
||||
if sys.platform.startswith("linux"):
|
||||
if sys.platform.startswith("linux") and self.root.FRAME_INFO == "Custom":
|
||||
self.top.destroy()
|
||||
self.__is_hover = 0
|
||||
self.canvas.focus_force()
|
||||
|
||||
def pressrelease_v(event: tkinter.Event):
|
||||
if (self.__is_hover == 1):
|
||||
closecallback(event)
|
||||
pass
|
||||
# closecallback(event)
|
||||
else:
|
||||
self.__is_hover = 1
|
||||
if sys.platform.startswith("linux"): # what's fuck?
|
||||
# what's fuck?
|
||||
if sys.platform.startswith("linux") and self.root.FRAME_INFO == "Custom":
|
||||
self.top = tkinter.Toplevel()
|
||||
self.top.geometry(
|
||||
f"{1}x{1}+{10000}+{10000}")
|
||||
|
@ -285,6 +287,7 @@ class Entry:
|
|||
self.inputobj.bind("<ButtonRelease-1>", pressrelease_v)
|
||||
self.show_label.bind("<ButtonRelease-1>", pressrelease_v)
|
||||
self.__input_textvar.trace_add("write", update_text)
|
||||
# self.frames.bind_all("<FocusOut>", closecallback)
|
||||
if (sys.platform.startswith("linux")):
|
||||
self.frames.bind("<Leave>", closecallback)
|
||||
else:
|
||||
self.inputobj.bind_all("<FocusOut>", closecallback)
|
||||
|
|
|
@ -1,14 +1,7 @@
|
|||
import json
|
||||
import tkinter
|
||||
from tkinter import ttk
|
||||
from tkinter import font as tkfont
|
||||
try:
|
||||
import color_tmpl
|
||||
except ImportError:
|
||||
from magictk import color_tmpl
|
||||
try:
|
||||
import photoload
|
||||
except ImportError:
|
||||
from magictk import photoload
|
||||
|
||||
|
||||
|
|
|
@ -2,25 +2,10 @@ import time
|
|||
import tkinter
|
||||
import os
|
||||
from tkinter import ttk
|
||||
try:
|
||||
import color_tmpl
|
||||
except ImportError:
|
||||
from magictk import color_tmpl
|
||||
try:
|
||||
import _window_ctl
|
||||
except ImportError:
|
||||
from magictk import _window_ctl
|
||||
try:
|
||||
import _window_size
|
||||
except ImportError:
|
||||
from magictk import _window_size
|
||||
try:
|
||||
import workspace
|
||||
except ImportError:
|
||||
from magictk import workspace
|
||||
try:
|
||||
import photoload
|
||||
except ImportError:
|
||||
from magictk import photoload
|
||||
import sys
|
||||
|
||||
|
@ -43,6 +28,7 @@ class Window(ttk.Frame):
|
|||
disable_move = False
|
||||
min_w = 200
|
||||
min_h = 100
|
||||
FRAME_INFO = "Custom"
|
||||
|
||||
def update_size(self) -> None:
|
||||
self.tk_w_without_bar.set(self.w-48*3)
|
||||
|
|
Loading…
Reference in New Issue