import tkinter as tk
'''
from h23 import H23
'''
from test1 import NewWindow
__author__ = 'Evan'
class GuiSample(object):
def __init__(self):
self.root = tk.Tk()
self.root.title('Countdown program')
self.root.wm_attributes("-alpha", 1.0)
self.root.wm_attributes("-topmost", True)
self.build_button()
self.add23_new_window.grid(row=0, column=0, sticky=tk.W)
self.quit_button.grid(row=10, column=1, sticky=tk.W)
self.set_gui_geometry(window=self.root)
self.newwindow1 = NewWindow()
def build_button(self):
self.quit_button = tk.Button(self.root, text='Quit',command=self.tk_quit, bg='tomato')
self.add23_new_window = tk.Button(self.root, text='23',command=self.new_window, bg='PeachPuff')
def tk_quit(self):
self.root.destroy()
self.root.quit()
def new_window(self):
self.window = tk.Toplevel(self.root)
self.window.title('23')
self.window.wm_attributes("-topmost", True)
self.set_gui_geometry(window=self.newwindow1.new_window(), x=1.6, y=3.5)
def bind_window_move_events(self):
def start_move(event):
global x, y
x = event.x
y = event.y
def stop_move(event):
global x, y
x = None
y = None
def on_motion(event):
global x, y
deltax = event.x - x
deltay = event.y - y
self.root.geometry("+%s+%s" % (self.root.winfo_x() + deltax, self.root.winfo_y() + deltay))
self.root.update()
self.root.bind("<ButtonPress-1>", start_move) # 监听左键按下操作响应函数
self.root.bind("<ButtonRelease-1>", stop_move) # 监听左键松开操作响应函数
self.root.bind("<B1-Motion>", on_motion) # 监听鼠标移动操作响应函数
@staticmethod
def set_gui_geometry(window, x=2.5, y=4.0):
window.update_idletasks()
x_info = (window.winfo_screenwidth() - window.winfo_reqwidth()) / x
y_info = (window.winfo_screenwidth() - window.winfo_reqwidth()) / y
window.geometry('+%d+%d' % (x_info, y_info))
@staticmethod
def set_window_center(window, width=300, height=300):
ws = window.winfo_screenwidth()
hs = window.winfo_screenheight()
x = (ws / 2) - (width / 2)
y = (hs / 2) - (height / 2)
window.geometry('%dx%d+%d+%d' % (width, height, x, y))
if __name__ == '__main__':
guiSample = GuiSample()
guiSample.root.mainloop()
这是链接的另一个文件
import tkinter as tk
'''
from h23 import H23
'''
__author__ = 'Evan'
class NewWindow(object):
def __init__(self):
self.root = tk.Tk()
self.root.title('Countdown program')
self.root.wm_attributes("-alpha", 1.0)
self.root.wm_attributes("-topmost", True)
self.build_button()
self.add23_new_window.grid(row=0, column=0, sticky=tk.W)
self.quit_button.grid(row=10, column=1, sticky=tk.W)
self.set_gui_geometry(window=self.root)
def build_button(self):
self.quit_button = tk.Button(self.root, text='Quit',command=self.tk_quit, bg='tomato')
self.add23_new_window = tk.Button(self.root, text='23',command=self.new_window, bg='PeachPuff')
def tk_quit(self):
self.root.destroy()
self.root.quit()
def new_window(self):
self.window = tk.Toplevel(self.root)
self.window.title('23')
self.window.wm_attributes("-topmost", True)
self.set_gui_geometry(window=self.window, x=1.6, y=3.5)
def bind_window_move_events(self):
def start_move(event):
global x, y
x = event.x
y = event.y
def stop_move(event):
global x, y
x = None
y = None
def on_motion(event):
global x, y
deltax = event.x - x
deltay = event.y - y
self.root.geometry("+%s+%s" % (self.root.winfo_x() + deltax, self.root.winfo_y() + deltay))
self.root.update()
self.root.bind("<ButtonPress-1>", start_move) # 监听左键按下操作响应函数
self.root.bind("<ButtonRelease-1>", stop_move) # 监听左键松开操作响应函数
self.root.bind("<B1-Motion>", on_motion) # 监听鼠标移动操作响应函数
@staticmethod
def set_gui_geometry(window, x=2.5, y=4.0):
window.update_idletasks()
x_info = (window.winfo_screenwidth() - window.winfo_reqwidth()) / x
y_info = (window.winfo_screenwidth() - window.winfo_reqwidth()) / y
window.geometry('+%d+%d' % (x_info, y_info))
@staticmethod
def set_window_center(window, width=300, height=300):
ws = window.winfo_screenwidth()
hs = window.winfo_screenheight()
x = (ws / 2) - (width / 2)
y = (hs / 2) - (height / 2)
window.geometry('%dx%d+%d+%d' % (width, height, x, y))
if __name__ == '__main__':
guiSample = GuiSample()
guiSample.root.mainloop()
这是倒计时文件
# Countdown using Tkinter
from tkinter import *
import time
import tkinter.messagebox
class T19:
def __init__(self,master):
frame = Frame(master)
frame.pack()
self.hi_there = Button(frame, text="开始", command=self.start)
self.hi_there.pack(side=LEFT)
self.button = Button(frame, text="退出", fg="red", command=frame.quit)
self.button.pack(side=LEFT)
def start(self):
self.countDown(int(19))
def countDown(self,seconds):
#倒计时程序
lbl1.config(bg='yellow')
lbl1.config(height=3, font=('times', 40, 'bold'))
#设置显示倒计时高度、字体大小及字体颜色
for k in range(seconds, 0, -1):
if k == 30:
print("\a")
if k== 29:
print("\a")
if k== 28:
print("\a")
lbl1["text"] = k
root.update()
time.sleep(1)
lbl1.config(bg='red')
lbl1.config(fg='white')
lbl1["text"] = "时间到!"
root = Tk()
root.title("Countdown")
root.geometry('380x300')
lbl1 = Label()
lbl1.pack(fill=BOTH, expand=1)
t19 = T19(root)
root.mainloop()
运行程序后并没有出现按钮,而是直接将倒计时文件一一弹出至结束,如何能够在一级窗口内出现按钮并点击后出现二级窗口,再次点击二级窗口的按钮弹出对应的倒计时程序。
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。