XIVN1987 发表于 2018-9-27 16:43:42

Python Tkinter 使用例程!


写GUI程序一直使用PyQt,因为PyQt界面美观、功能强大、文档详尽、还有个Qt Designer可以用来拖界面,,

不过对于非常简单的程序(比如下面这个),总感觉使用PyQt有点儿杀鸡用牛刀,,而且PyQt写的程序打包成exe时比较大

所以,今天试试用Python自带的界面库Tkinter做简单界面,效果如下:



确实界面有点儿丑{:sweat:}

不过代码还算简洁,,所以对于界面非常简单的程序,,也就忍着用吧(毕竟是Python自带的,不用额外安装){:biggrin:}



import Tkinter as tk
import tkFileDialog


def encrypt():
    key= int(Key.get(), 16)
    data = open(File.get(), 'rb').read()

def getFile():
    file = tkFileDialog.askopenfilename(initialdir='C:\\')
    if file:
      File.set(file)


win = tk.Tk()

Key = tk.StringVar(win, '0x1234ABCD')
File = tk.StringVar(win, r'C:\Users\wmx\Desktop\SWM181_StdPeriph_Driver.bin')

tk.Label(win, text=u'加密秘钥:').grid(row=0, column=0)
tk.Entry(win, width=15, textvariable=Key).grid(row=0, column=1, sticky="W")

tk.Label(win, text=u'加密文件:').grid(row=1, column=0)
tk.Entry(win, width=59, textvariable=File).grid(row=1, column=1)
tk.Button(win, text='...', width=4, command=lambda: getFile()).grid(row=1, column=2)

tk.Button(win, text=u'加密', width=4, command=lambda: encrypt()).grid(row=2, column=2)

win.mainloop()

ifus 发表于 2018-9-27 17:49:25

good,感觉现在都流行python,难道又要多学一门?

chun2495 发表于 2018-9-27 17:57:35

TK没有creator吗?

love_zjb 发表于 2018-9-27 17:58:24

666,谢谢分享

XIVN1987 发表于 2018-9-27 18:05:08

chun2495 发表于 2018-9-27 17:57
TK没有creator吗?


Tk只适合有几个Label、输入框、按钮的那种简单界面程序,,这种情况下不需要Creator,,打开编辑器开撸就行{:titter:}

nickzhn 发表于 2018-9-27 20:06:25

简单的就用tkinter

dreambox 发表于 2018-9-28 10:55:00

我也是简单的就直接手敲tkinter,复杂的就用Creator PyQt

FireHe 发表于 2018-9-28 11:30:48

IDE设计有简便的工具,非常好用

https://github.com/cdhigh/tkinter-designer

XIVN1987 发表于 2018-9-28 11:55:38

FireHe 发表于 2018-9-28 11:30
IDE设计有简便的工具,非常好用

https://github.com/cdhigh/tkinter-designer


VB6直接设计Tk界面,,还有这东西,,厉害啦

不过复杂界面还是建议PyQt,,Tkinter太简陋了

FireHe 发表于 2018-9-28 11:59:19

XIVN1987 发表于 2018-9-28 11:55
VB6直接设计Tk界面,,还有这东西,,厉害啦

不过复杂界面还是建议PyQt,,Tkinter太简陋了


是的

Tkinter的优势就在于简单,单文件,不需安装各种包,python内置支持

有这个工具,拖拉一下就生成了。非常好用,强烈推荐

Excellence 发表于 2018-9-28 12:05:16

FireHe 发表于 2018-9-28 11:30
IDE设计有简便的工具,非常好用

https://github.com/cdhigh/tkinter-designer

谢谢分享。。。

elecfun 发表于 2018-9-28 12:19:13

昨天晚上安装robotframework,老是报找不到wxPython,拆腾了一晚上,才发现问题是我的python是64位的,换成32位就好了

daiqx 发表于 2018-9-28 12:56:38

不错…………………

ilcvm 发表于 2018-9-28 13:54:20

FireHe 发表于 2018-9-28 11:30
IDE设计有简便的工具,非常好用

https://github.com/cdhigh/tkinter-designer

这个做界面设计也很方便
https://github.com/alejandroautalan/pygubu
另外用ttk的控件会漂亮点。还有用python3有些控件也会更现代些(tk的版本高点)

shower.xu 发表于 2018-9-28 14:58:16

ilcvm 发表于 2018-9-28 13:54
这个做界面设计也很方便
https://github.com/alejandroautalan/pygubu
另外用ttk的控件会漂亮点。还有用p ...

看了下不会用,大神给个入门指导呗

ilcvm 发表于 2018-9-28 15:08:36

shower.xu 发表于 2018-9-28 14:58
看了下不会用,大神给个入门指导呗

链接中就有清晰的说明。其实我自己也没真正用,只是用来试控件效果,因为觉得没有直接自己敲界面来得灵活。

Jach 发表于 2018-9-28 15:11:16

這個更簡單
https://github.com/MikeTheWatchGuy/PySimpleGUI
PyQt就留給做美工的, 工程師沒興趣搞這些.

程式碼:
import PySimpleGUI as sg

form = sg.Window('文件加密作業')
layout = [
    ,
    ,
    ,
    ]
form.LayoutAndRead(layout)


Jach 发表于 2018-9-28 15:13:25

FireHe 发表于 2018-9-28 11:30
IDE设计有简便的工具,非常好用

https://github.com/cdhigh/tkinter-designer

這個已經3年沒更新了

Jach 发表于 2018-9-28 15:14:57

ilcvm 发表于 2018-9-28 13:54
这个做界面设计也很方便
https://github.com/alejandroautalan/pygubu
另外用ttk的控件会漂亮点。还有用p ...

用起來挺麻煩的

XIVN1987 发表于 2018-9-28 15:21:06

Jach 发表于 2018-9-28 15:11
這個更簡單
https://github.com/MikeTheWatchGuy/PySimpleGUI
PyQt就留給做美工的, 工程師沒興趣搞這些.



这个确实简洁、看起来也比Tk美观些!

Jach 发表于 2018-9-28 16:01:50

XIVN1987 发表于 2018-9-28 15:21
这个确实简洁、看起来也比Tk美观些!

它就是tkinter的一個wrapper{:smile:}

zhonghua_li 发表于 2018-9-28 16:25:03

tk做些调试软件,如串口助手之类还是很方便的。
不过TK有些地方可以封装一下,就更好用了。
比如 tk.Entry 可以和 textvariable 封装在一起。
页: [1]
查看完整版本: Python Tkinter 使用例程!