程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

求tkinter右键单击时左键单击代码

发布于2021-08-29 14:06     阅读(909)     评论(0)     点赞(0)     收藏(0)



写了一个程序:

import tkinter;from tkinter import *;from tkinter import ttk,messagebox,filedialog
import zipfile,os
def un_zip(file_name):
    """unzip zip file"""
    zip_file = zipfile.ZipFile(file_name)
    if os.path.isdir(file_name + "_files"):
        pass
    else:
        os.mkdir(file_name + "_files")
    for names in zip_file.namelist():
        zip_file.extract(names,file_name + "_files/")
    zip_file.close()
    return file_name+"_files/"
def file_name(file_dir):
    global c,d,e
    c,d,e=[],[],[]
    for root, dirs, files in os.walk(file_dir):
        print('root_dir:', root)  # 当前目录路径
        c+=root
        print('sub_dirs:', dirs)  # 当前路径下所有子目录
        d+=dirs
        print('files:', files)
        e+=files
    return d+e
class App(tkinter.Tk):
    '''创建一个App窗口'''
    def __init__(self):
        '''主程序'''
        global pth
        pth=None
        
        Tk.__init__(self)
        self.title("python项目管理器 By王若宇")
        self.iconbitmap("ptn.ico")
        bar=Menu(self)

        b1=Menu(bar)
        b1.add_command(command=self.new,label="新建")
        b1.add_command(command=self.save,label="保存")
        b1.add_command(command=self.save_new,label="另存为")
        b1.add_command(command=self.open,label="打开")
        b1.add_separator()

        b1.add_command(command=self.print,label="打印代码")
        b1.add_separator()

        b1.add_command(command=self.withdraw,label="关闭此窗口")
        b1.add_command(command=exit,label="退出程序")

        bar.add_cascade(menu=b1,label="文件/项目(F)")

        self.config(menu=bar)

        tabs=ttk.Notebook(self)

        tab1=Frame(tabs)

        #项目目录区
        if not pth:
            global a
            a=Text(tab1,font=["微软雅黑",20])
            a.insert(END,"请打开文件或项目。")
            a.pack()

        tabs.add(tab1,text="项目")
        tabs.pack()

        self.geometry(str(700)+"x"+str(500))

    def new(self):
        '''新建文件'''
        a.pack()
        #下面是打开新窗口的代码
    def save(self):
        '''保存文件'''
    def save_new(self):
        '''另存为...'''
    def open(self):
        '''打开'''
        filename=filedialog.askopenfilename(title="打开pyhon模块\\项目文件")
        global pth
        if filename.split('.')[-1]=="zip":
            try:
                pth=un_zip(filename)
            except Exception as e:
                if os.path.isdir(filename+"_files"):
                    pth=filename+"_files"
                else:
                    pth=None
                    messagebox.showerror("出错了!","请联系作者,\n错误类型:"+str(type(e))+"\n错误原因:"+str(e))

                pass
        else:
            try:
                name=str(__import__("random").randint(1000,9999))
                os.mkdir(name)
            except Exception as e:
                name=str(__import__("random").randint(1000,9999))
                os.mkdir(name)
            pth=name
            try:
                w=open(pth+"\\"+filename.split("\\")[-1],"w+",encoding="utf-8")
                w.write(open(filename,"r+",encoding="utf-8").read())
            except:
                w=open(pth+"\\"+filename.split("/")[-1],"w+",encoding="utf-8")
                w.write(open(filename,"r+",encoding="utf-8").read())
            print("正在读取:",filename)
            w.flush()
            print(w.read())
            w.close()
        a.pack_forget()
        self.list_refrs()
        ##################结束##################
    def list_refrs(self):
        global listbx
        try:listbx
        except:
            listbx=Listbox(self)

        if listbx:
            pass
        else:
            listbx=Listbox(self,height=11)

        x=file_name(pth)

        rge=0
        for i in x:
            item=i
            listbx.insert(rge,item)
            print("正在读取:",i)
            rge+=1
        #刷新

        listbx.place(x=100,y=100)
        Label(self,text="项目目录",font=["微软雅黑",20]).place(x=100,y=50)
    def print(self):
        '''打印代码'''
if __name__=="__main__":
    #导入时不进入主循环
    app=App()
app.mainloop()
想要右键单击列表框时先模拟左键单击,再弹出右键菜单,大牛们请在评论区帮帮我,跪求代码。



所属网站分类: 技术文章 > 问答

作者:王若宇

链接:https://www.pythonheidong.com/blog/article/1028920/5d683d19fcdb6ac956a9/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)