第二个窗口首先运行如何停止它

2023-12-20

当我运行 python 文件kill_app 时,它运行第一个第二个 python 文件(Hb_test.py),然后在 tkinter 上运行第一个 python。我正在使用 vs code,python 版本是 3.10 看下面的代码

from tkinter import*
from Lab.Hb_Test import Hba
class kill_App:
    def __init__(self,root):
        self.root = root
        self.root.geometry("1350x700+0+0")
        self.root.title("Billing Software")
        bg_color = "#074463"
        title = Label(self.root,text = "PATHOLAB",bd=12,relief=GROOVE,bg=bg_color,fg="white",
        font = ("ALGERIAN",40),pady=2).pack(fill=X)

if __name__=="__main__":   
    root =Tk()
    obj = kill_App(root)
    root.mainloop()
****

这是我的第二次 **

**from tkinter import*
from tkinter import ttk
class Hba:
    def __init__(self,root):
        self.root = root
        self.root.geometry("300x70+200+200")
        self.root.title("JIBAN PRABHA PATHOLAB")
        bg_color = "#074463"
        Hb = LabelFrame(self.root,text="BLOOD TEST",font=("ALGERIAN",15,"bold")
        ,fg="gold",bg=bg_color)
        Hb.place(x=0,y=0)
        self.hb_neu_lbl = Label(Hb,text="Hb%(sahils) Test",bg=bg_color,fg="white",font=("Bell MT",15,"bold")).grid(row=1,column=1,padx=5,pady=5)
        self.hb_neu=Entry(Hb,width=10,font="BellMT 15",bd=5,relief=SUNKEN).grid(row=1,column=2,padx=5,pady=5)
root =  Tk()
obj = Hba(root)
root.mainloop()**

**


When Hb_Test导入后,其代码将被执行,因此模块中的最后三行将创建一个窗口:

Hb_测试.py

...
# below lines will create a window
root =  Tk()
obj = Hba(root)
root.mainloop()

请注意,不建议创建多个实例Tk()并执行.mainloop()不止一次。

对于除以下以外的窗口主/根窗口, 使用Toplevel代替Tk。对于你的情况,我建议Hba继承自Toplevel:

import tkinter as tk

class Hba(tk.Toplevel):
    def __init__(self, master=None, **kwargs):
        super().__init__(master, **kwargs)
        self.geometry("300x70+200+200")
        self.title("JIBAN PRABHA PATHOLAB")
        bg_color = "#074463"
        Hb = tk.LabelFrame(self, text="BLOOD TEST", font=("ALGERIAN",15,"bold"), fg="gold", bg=bg_color)
        Hb.place(x=0, y=0)
        self.hb_neu_lbl = tk.Label(Hb, text="Hb%(sahils) Test", bg=bg_color, fg="white", font=("Bell MT",15,"bold"))
        self.hb_neu_lbl.grid(row=1,column=1,padx=5,pady=5)
        self.hb_neu = tk.Entry(Hb, width=10, font="BellMT 15", bd=5, relief=tk.SUNKEN)
        self.hb_neu.grid(row=1,column=2,padx=5,pady=5)

注意我已经改变了from tkinter import * to import tkinter as tk因为也不建议导入通配符。

也不要编写如下代码:

self.hb_neu_lbl = Label(Hb,text="Hb%(sahils) Test",bg=bg_color,fg="white",font=("Bell MT",15,"bold")).grid(row=1,column=1,padx=5,pady=5)

because self.hb_neu_lblNone(的结果.grid(...))。代码如下:

self.hb_neu_lbl = Label(Hb, text="Hb%(sahils) Test", bg=bg_color, fg="white", font=("Bell MT",15,"bold"))
self.hb_neu_lbl.grid(row=1,column=1,padx=5,pady=5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第二个窗口首先运行如何停止它 的相关文章

随机推荐