zoukankan      html  css  js  c++  java
  • tkinter学习07

    解决ubuntu系统 上没有tkinter模块的问题

    rico@rico-VirtualBox:~/桌面$ python3 canves
    Traceback (most recent call last):
      File "canves", line 3, in <module>
        import tkinter as tk
    ModuleNotFoundError: No module named 'tkinter'
    rico@rico-VirtualBox:~/桌面$ sudo apt-get install python3-tk
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    将会同时安装下列软件:
      blt libtcl8.6 libtk8.6 tk8.6-blt2.5
    建议安装:
      blt-demo tcl8.6 tk8.6 tix python3-tk-dbg
    下列【新】软件包将被安装:
      blt libtcl8.6 libtk8.6 python3-tk tk8.6-blt2.5
    升级了 0 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 239 个软件包未被升级。
    需要下载 2,252 kB 的归档。
    解压缩后会消耗 9,231 kB 的额外空间。
    您希望继续执行吗? [Y/n] y
    获取:1 http://cn.archive.ubuntu.com/ubuntu bionic/main amd64 libtcl8.6 amd64 8.6.8+dfsg-3 [881 kB]
    

     已安装成功。

    #!/usr/bin/python3
    
    import tkinter as tk
    
    window=tk.Tk()
    window.title("my window")
    window.geometry("200x200")
    
    canvas = tk.Canvas(window, bg='blue', height=100, width=200)
    canvas.pack()
    image_file = tk.PhotoImage(file='ins.gif')
    image = canvas.create_image(10, 10, anchor='nw', image=image_file)
    x0, y0, x1, y1= 50, 50, 80, 80
    line = canvas.create_line(x0, y0, x1, y1)
    oval = canvas.create_oval(x0, y0, x1, y1, fill='red')  #创建一个圆,填充色为`red`红色
    arc = canvas.create_arc(x0+30, y0+30, x1+30, y1+30, start=0, extent=180)  #创建一个扇形
    rect = canvas.create_rectangle(100, 30, 100+20, 30+20)   #创建一个矩形
    def moveit():
        canvas.move(rect, 0, 2)
    b=tk.Button(window,text="move",command=moveit).pack()
    
    
    window.mainloop()

    #!usr/bin/python3
    import tkinter as tk
    import pickle
    import tkinter.messagebox
    
    
    window = tk.Tk()
    window.title('Welcome to Mofan Python')
    window.geometry('450x300')
    
    # welcome image
    canvas = tk.Canvas(window, height=200, width=500)
    image_file = tk.PhotoImage(file='welcome.gif')
    image = canvas.create_image(0,0, anchor='nw', image=image_file)
    canvas.pack(side='top')
    
    # user information
    tk.Label(window, text='User name: ').place(x=50, y= 150)
    tk.Label(window, text='Password: ').place(x=50, y= 190)
    
    var_usr_name = tk.StringVar()
    var_usr_name.set('example@python.com')
    entry_usr_name = tk.Entry(window, textvariable=var_usr_name)
    entry_usr_name.place(x=160, y=150)
    var_usr_pwd = tk.StringVar()
    entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*')
    entry_usr_pwd.place(x=160, y=190)
    
    def usr_login():
        usr_name = var_usr_name.get()
        usr_pwd = var_usr_pwd.get()
        try:
            with open('usrs_info.pickle', 'rb') as usr_file:
                usrs_info = pickle.load(usr_file)
        except FileNotFoundError:
            with open('usrs_info.pickle', 'wb') as usr_file:
                usrs_info = {'admin': 'admin'}
                pickle.dump(usrs_info, usr_file)
        if usr_name in usrs_info:
            if usr_pwd == usrs_info[usr_name]:
                tk.messagebox.showinfo(title='Welcome', message='How are you? ' + usr_name)
            else:
                tk.messagebox.showerror(message='Error, your password is wrong, try again.')
        else:
            is_sign_up = tk.messagebox.askyesno('Welcome',
                                   'You have not sign up yet. Sign up today?')
            if is_sign_up:
                usr_sign_up()
    
    def usr_sign_up():
        def sign_to_Mofan_Python():
            np = new_pwd.get()
            npf = new_pwd_confirm.get()
            nn = new_name.get()
            with open('usrs_info.pickle', 'rb') as usr_file:
                exist_usr_info = pickle.load(usr_file)
            if np != npf:
                tk.messagebox.showerror('Error', 'Password and confirm password must be the same!')
            elif nn in exist_usr_info:
                tk.messagebox.showerror('Error', 'The user has already signed up!')
            else:
                exist_usr_info[nn] = np
                with open('usrs_info.pickle', 'wb') as usr_file:
                    pickle.dump(exist_usr_info, usr_file)
                tk.messagebox.showinfo('Welcome', 'You have successfully signed up!')
                window_sign_up.destroy()
    
        window_sign_up = tk.Toplevel(window)
        window_sign_up.geometry('350x200')
        window_sign_up.title('Sign up window')
    
        new_name = tk.StringVar()
        new_name.set('example@python.com')
        tk.Label(window_sign_up, text='User name: ').place(x=10, y=10)
        entry_new_name = tk.Entry(window_sign_up, textvariable=new_name)
        entry_new_name.place(x=150, y=10)
    
        new_pwd = tk.StringVar()
        tk.Label(window_sign_up, text='Password: ').place(x=10, y=50)
        entry_usr_pwd = tk.Entry(window_sign_up, textvariable=new_pwd, show='*')
        entry_usr_pwd.place(x=150, y=50)
    
        new_pwd_confirm = tk.StringVar()
        tk.Label(window_sign_up, text='Confirm password: ').place(x=10, y=90)
        entry_usr_pwd_confirm = tk.Entry(window_sign_up, textvariable=new_pwd_confirm, show='*')
        entry_usr_pwd_confirm.place(x=150, y=90)
    
        btn_comfirm_sign_up = tk.Button(window_sign_up, text='Sign up', command=sign_to_Mofan_Python)
        btn_comfirm_sign_up.place(x=150, y=130)
    
    # login and sign up button
    btn_login = tk.Button(window, text='Login', command=usr_login)
    btn_login.place(x=170, y=230)
    btn_sign_up = tk.Button(window, text='Sign up', command=usr_sign_up)
    btn_sign_up.place(x=270, y=230)
    
    window.mainloop()
    View Code

    welcome.gif



  • 相关阅读:
    边工作边刷题:70天一遍leetcode: day 3
    边工作边刷题:70天一遍leetcode: day 3
    边工作边刷题:70天一遍leetcode: day 4
    边工作边刷题:70天一遍leetcode: day 4
    边工作边刷题:70天一遍leetcode: day 4
    javascript和jquery 获取触发事件的元素
    javascript 柯里化
    惰性函数
    IE6和IE7的line-height和现代浏览器不一致的问题
    img图片之间有空隙的问题
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/9900321.html
Copyright © 2011-2022 走看看