python 使用tkinter 进行读取文件以及可视化界面显示


import tkinter as tk
from tkinter import filedialog#用于打开文件  核心:filepath = filedialog.askopenfilename() #获得选择好的文件,单个文件
import tkinter.messagebox #弹窗库
# from tkinter import Image
from PIL import Image#PIL需要安装 pip install pillow
from PIL import ImageTk
#myTK 初始化窗口 通过openfile函数来选择文件并显示
class myTK():
    def __init__(self) -> None:
        self.window=tk.Tk()#创建对象
        self.window.title("转漫画风")#标题
        # window.geometry("720x480")#设置窗口大小
        self.window.geometry("1200x960")#设置窗口大小
        self.window.resizable(height=False,width=False)#设置窗口不可改变大小

        self.frame1=tk.Frame(self.window)
        # self.frame1.place(x=0, y=100)

        #打开文件按钮
        self.bt_open = tk.Button(self.window,command=self.openfile, text='打开图片',height=2,width=10,activebackground='red')
        self.bt_open.place(x=0, y=0)

        self.window.mainloop()#显示
    

    def openfile(self):#打开文件并显示
        filepath = filedialog.askopenfilename() #获得选择好的文件,单个文件
        imgtype=[".jpg",".png"]#规定读取的文件类型
        if str(filepath)[-4:] in imgtype:
            print("打开文件",filepath)
            image = Image.open(filepath)  
            imgwidth,imgheight=image.size

            self.frame1.destroy()
            self.frame1=tk.Frame(self.window,bg="red",height=imgheight,width=imgwidth)
            self.canvasimg=tk.Canvas(self.frame1,height=imgheight,width=imgwidth)
            print(image.size)
            im = ImageTk.PhotoImage(image) 
            self.canvasimg.create_image(0,0,anchor="nw",image=im)
        
            self.canvasimg.place(x=0, y=0)
            self.frame1.place(x=0, y=100)

            self.laabel_img1.configure(image=im)#有bug才能显示图片?

        else:
            tkinter.messagebox.showinfo('提示','请选择.jpg .png 图片')


if __name__=="__main__":
    mywindow=myTK()

#tkinter负责选择文件(获取文件路径,以及绘制可视化界面
#PIL image打开图片文件

#问题:图片更新问题没有解决,需要有bug才能正常显示,
#有大佬有想法可以一起讨论









服务端: 服务端程序启动之后弹出窗口,管理员输入IP、端口等信息之后点击启动按钮,服务器启动,服务端窗口自动关闭,之后跳转至服务端信息展示界面,包含用户上线提醒,用户发送信息记录展示。 客户端: 客户端程序启动之后,需要弹出登录界面,当用户成功输入昵称、密码、端口、IP等信息(考虑到用户权限问题,本程序在后台默认有固定IP、端口,)用户只需输入昵称、密码(密码用于后期连接数据库时用来匹配数据库存储的用户信息)。当用户成功输入用户名。昵称、密码等信息客户端登录成功跳转至用户进行端对端的聊天界面。聊天界面大致分为聊天记录展示界面,在线好友信息界面以及用户发送信息处。用户在发送消息处输入想要发送的文本消息,选择在线好友中的好友昵称点击选择好友即可选中您要发给的好友昵称,然后点击发送按钮,即可将消息发送给所选择的好友,同时将信息展示在自己的聊天界面中的聊天记录处 2.2. 功能要求 §2.2.1服务端功能要求: 当管理员输入服务器IP、以及端口等信息之后点击启动按钮之后,服务端正常启动之后,需要保持一直开机状态满足所有用户不论在何时登录之后都能进行与好友之间的聊天交流等,同时服务端还要满足监控用户登录信息,不同用户登录客户端之后,服务器后台能够看到某某客户上线了等提示信息。用于服务端查看好友在线状态同时作为服务器,还要能够监控用户的聊天记录,用于监控用户不能发送一些不利言论,从而将其用户及时作封号处理。阻止其传播一些不健康的言论。 §2.2.2客户端要求: 用户在登录界面输入昵称、密码等信息之后成功登录之后,进行窗口之间的跳转,由登录窗口跳转至进行用户之间的聊天窗口,之前的登录窗口也要随之消失。在聊天窗口之中用户需要根据好友在线信息情况选择自己想要与其进行聊天的对象。用户点击在线好友的昵称点击选择好友即可向该好友发送信息,发送成功之后同时要将其发送的信息以及时间信息展示在自己的窗口之中,同时也要在指定好友的窗口之中有所显示以及时间信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰山丶一角

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值