搜索
bottom↓
回复: 21

Python Tkinter 使用例程!

[复制链接]

出0入25汤圆

发表于 2018-9-27 16:43:42 | 显示全部楼层 |阅读模式

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

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

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



确实界面有点儿丑

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



  1. import Tkinter as tk
  2. import tkFileDialog


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

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


  10. win = tk.Tk()

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

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

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

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

  19. win.mainloop()
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2018-9-27 17:49:25 | 显示全部楼层
good,感觉现在都流行python,难道又要多学一门?

出25入84汤圆

发表于 2018-9-27 17:57:35 | 显示全部楼层
TK没有creator吗?

出0入0汤圆

发表于 2018-9-27 17:58:24 来自手机 | 显示全部楼层
666,谢谢分享

出0入25汤圆

 楼主| 发表于 2018-9-27 18:05:08 | 显示全部楼层


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

出10入0汤圆

发表于 2018-9-27 20:06:25 | 显示全部楼层
简单的就用tkinter

出0入0汤圆

发表于 2018-9-28 10:55:00 | 显示全部楼层
我也是简单的就直接手敲tkinter,复杂的就用Creator PyQt

出0入0汤圆

发表于 2018-9-28 11:30:48 | 显示全部楼层
IDE设计有简便的工具,非常好用

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

出0入25汤圆

 楼主| 发表于 2018-9-28 11:55:38 | 显示全部楼层
FireHe 发表于 2018-9-28 11:30
IDE设计有简便的工具,非常好用

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


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

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

出0入0汤圆

发表于 2018-9-28 11:59:19 | 显示全部楼层
XIVN1987 发表于 2018-9-28 11:55
VB6直接设计Tk界面,,还有这东西,,厉害啦

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

是的

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

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

出0入0汤圆

发表于 2018-9-28 12:05:16 | 显示全部楼层
FireHe 发表于 2018-9-28 11:30
IDE设计有简便的工具,非常好用

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

谢谢分享。。。

出0入134汤圆

发表于 2018-9-28 12:19:13 | 显示全部楼层
昨天晚上安装robotframework,老是报找不到wxPython,拆腾了一晚上,才发现问题是我的python是64位的,换成32位就好了

出0入0汤圆

发表于 2018-9-28 12:56:38 来自手机 | 显示全部楼层
不错…………………

出0入0汤圆

发表于 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的版本高点)

出0入0汤圆

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

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

出0入0汤圆

发表于 2018-9-28 15:08:36 | 显示全部楼层
shower.xu 发表于 2018-9-28 14:58
看了下不会用,大神给个入门指导呗

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

出0入0汤圆

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

程式碼:
import PySimpleGUI as sg

form = sg.Window('文件加密作業')
layout = [
    [sg.Text('加密祕鑰:'), sg.InputText('0x1234ABCD')],
    [sg.Text('加密文件:'), sg.InputText(''), sg.FileBrowse()],
    [sg.Button('加密')],
    ]
form.LayoutAndRead(layout)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-9-28 15:13:25 | 显示全部楼层
FireHe 发表于 2018-9-28 11:30
IDE设计有简便的工具,非常好用

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

這個已經3年沒更新了

出0入0汤圆

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

用起來挺麻煩的

出0入25汤圆

 楼主| 发表于 2018-9-28 15:21:06 | 显示全部楼层
Jach 发表于 2018-9-28 15:11
這個更簡單
https://github.com/MikeTheWatchGuy/PySimpleGUI
PyQt就留給做美工的, 工程師沒興趣搞這些.


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

出0入0汤圆

发表于 2018-9-28 16:01:50 | 显示全部楼层
XIVN1987 发表于 2018-9-28 15:21
这个确实简洁、看起来也比Tk美观些!

它就是tkinter的一個wrapper

出0入0汤圆

发表于 2018-9-28 16:25:03 | 显示全部楼层
tk做些调试软件,如串口助手之类还是很方便的。
不过TK有些地方可以封装一下,就更好用了。
比如 tk.Entry 可以和 textvariable 封装在一起。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-14 21:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表