IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Tkinter制作工具学习记录(一)界面 -> 正文阅读

[Python知识库]Tkinter制作工具学习记录(一)界面

参考文章:tkinter创建GUI实现多界面切换以及python中处理多个异常不退出程序_我要变秃头的博客-CSDN博客_python tkinter 多界面在python中使用tkinter模块实现多界面切换,并在python中处理多个异常不退出程序https://blog.csdn.net/m0_47732121/article/details/123977459

?效果:

?1.顶部

?

1.1设置窗口居中

    def tk_Size(win,t,ww,wh,xr,yr):
        win.title(t)
        sw = win.winfo_screenwidth()
        sh = win.winfo_screenheight()
        x = (sw - ww) / xr
        y = (sh - wh) / yr
        win.geometry("%dx%d+%d+%d" % (ww, wh, x, y))
        win.resizable(0, 0)
        win.resizable(0, 0)

1.2设置窗体title图片

from PIL import Image, ImageTk

class window():
    def __init__(self):
        self.window = tk.Tk()
        method.tk_Size(win=self.window, ww=1080, wh=680, xr=2, yr=10, t='Gingerlite工具-v1.0.0.1-demo')
        tk.Label(self.window.iconbitmap("images/data.ico"))

1.3插入图片

        #打开图片
        ico1 = Image.open("images/lite.jpg")
        #设置图片大小
        ico1 = ico1.resize((100, 100))
        ico = ImageTk.PhotoImage(ico1)
        labelimage = tk.Label(frame0, image=ico)
        labelimage.place(x=0, y=0)

1.4设置label

labelmcsip = tk.Label(frame0, text='MSCIP:', font=("微软雅黑", '12'), bg='lightgreen')
        labelmcsip.place(relx=0.1, rely=0.2, width=80, height=32)
        EntryMSCIP = tk.Entry(frame0, insertbackground='deepskyblue', insertwidth='6', foreground='seagreen', font=("微软雅黑", '14'))

参考:

Tkinter 组件详解(一):Label_来自江南的你的博客-CSDN博客_tk.labelicon-default.png?t=M3K6https://blog.csdn.net/qq_41556318/article/details/85079411

1.5python颜色代码表

参考:

python 颜色代码_Ramiro Luo的博客-CSDN博客_python颜色代码表'aliceblue': '#F0F8FF','antiquewhite': '#FAEBD7','aqua': '#00FFFF','aquamarine': '#7FFFD4','azure': '#F0FFFF','beige': '#F5F5DC','bisque': '#FFE4C4','black': https://blog.csdn.net/qq_37844142/article/details/108282190

1.6实时显示时间

self.window.after(100, self.timeUpdate)
#时钟
    def timeUpdate(self):
        self.time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        labelInfo.config(text="时间:" + self.time)
        self.window.after(100, self.timeUpdate)  # 每隔一秒,时间变化一次

1.7获取本机IP

#获取本机IP
    def tk_host_ip(slef):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            s.connect(('8.8.8.8', 80))
            ip = s.getsockname()[0]
        finally:
            s.close()
        return ip

1.8输入内容判断是否为ip格式

    #IP格式判断
    def tk_Check_Ip(v):
        p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$')
        if p.match(v):
            return 1
        else:
            return 0

1.9按钮【连接】,错误弹窗设置

网络检查:

    # 网络检查
    def tk_Check_Net(self):
        ip = EntryMSCIP.get()
        m_ping = os.system('ping %s -n 2 -w 1' % (ip))
        if m_ping == 0:
            return 1
        else:
            openvpn_status = os.system('tasklist | findstr openvpn-gui.exe')
            if openvpn_status == 0:
                return 0
            else:
                return 2

弹窗设置:

#连接
    def connect(self):
        mcsip = EntryMSCIP.get()
        key1 = method.tk_Check_Ip(v=mcsip)
        if key1 == 0:
            messagebox.showerror('提示', '输入的IP格式不正确,请重新输入')
            EntryMSCIP.delete(0, "end")
        else:
            key2 = method.tk_Check_Net(self=self)
            if key2 == 1:
                print('1')
                Radiobuttonfalse.config(bg='grey')
                Radiobuttonsucess.config(bg='lightgreen')
            elif key2 == 2:
                messagebox.showinfo('提示', '未检测到vpn,请检查')
                Radiobuttonfalse.config(bg='tomato')
                Radiobuttonsucess.config(bg='grey')
            elif key2 == 0:
                messagebox.showerror('提示', '网络未能正常连接,请检查')
                Radiobuttonfalse.config(bg='tomato')
                Radiobuttonsucess.config(bg='grey')

网络成功效果:

失败效果:

?

?

?1.11窗口切换

# 界面切换按钮
        btn0 = tk.Button(frame0, text='主页-未开放',state='disable', command=lambda: self.create_framemain())
        btn0.place(relx=0, rely=0.7, relwidth=0.125)

        btn1 = tk.Button(frame0, text='ccu', command=lambda: MyThread(self.create_frameccu))
        btn1.place(relx=0.125, rely=0.7, relwidth=0.25)

        btn2 = tk.Button(frame0, text='RCU-未开放',  state='disable', command=lambda: self.create_framercu())
        btn2.place(relx=0.375, rely=0.7, relwidth=0.25)

        btn3 = tk.Button(frame0, text='留言-未开放', state='disable', command=lambda: self.create_framemessage())
        btn3.place(relx=0.625, rely=0.7, relwidth=0.25)

        btn4 = tk.Button(frame0, text='退出', command=lambda: (exit()))
        btn4.place(relx=0.875, rely=0.7, relwidth=0.125)

2.ccu窗口

#ccu窗口
    def create_frameccu(self):
        global framemessage, framercu, frameccu, framemain, EntryDir
        try:
            frameccu.destroy()
        except:
            pass
        finally:
            try:
                framercu.destroy()
            except:
                pass
            finally:
                try:
                    framemessage.destroy()
                except:
                    pass
                finally:
                    try:
                        framemain.destroy()
                    except:
                        pass
                    finally:
                        frameccu = tk.Frame(self.window, height=600, width=1080)
                        frameccu.place(relx=0, rely=0.14)
                        frameccu.pack_propagate(0)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:14:27  更:2022-05-05 11:17:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:46:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码