常见泽1

  • 2019-02-20
  • 发表了主题帖: Tkinter学习笔记(三)

    本帖最后由 常见泽1 于 2019-2-20 16:34 编辑 Tinker学习笔记3 基本控件学习完了,下面就是想整合所有的控件在一个界面里显示,所以想到做一个简单的串口调试助手界面,但是暂时不用串口功能,只是布局下基本的控件。 综合串口调试助手,我需要用的控件在前面两集已经基本学完了,分别是:combox, label, text, button, entry等 第一步:先把串口配置的放一列 可以配置成下拉选项的,利用tkinter的label和combobox控件完成 下拉选项通过控件编程完成, 加入串口号:com0,com1,com2,com3; 波特率:2400,4800,9600,115200; 校验位:NONE,EVEN; 数据位:8,7; 停止位:0,1 第二步:加入text和需要的按键button,利用grid布局加入 加入两个text,一个作为收到串口数据显示text 一个是发送数据的 Grid布局通过column和row来代码编辑,反正我不是特别喜欢这种模式,C#和QT的图形化界面比这简单多了,这个还得自己算 而且调了好多次,都无法实现完全符合我内心的布局,这一点真的不如C#和QT,可能我还没能够理解精髓! 第三步:加入窗口标题title 设置窗体的标题栏这个功能tkinter可以简单实现,通过给页面添加一个title 文字选项就可以了! win.title("串口调试助手") 看下效果: 我们再来修改下标题左边的图标 首先我们要下一个ICO文件,这里我们随便下载一个,只是为了测试代码 注意:我们把ico文件复制到我的Py文件目录里 如果你的ico文件是放在当前目录, 直接win.iconbitmap('python.ico')是没问题的.如果ico文件是放在其他目录,, 那就用绝对路径了。总之, 一定要确定你的py的文件目录里包含了这个Ico文件 添加代码:win.iconbitmap('ooopic_1550641922.ico') ooopic_1550641922.ico文件就是我刚刚下载的Ico文件的名称 来看看效果,界面的图标成功修改了 代码示例: #from tkinter.ttk import * #from tkinter import * import tkinter from  tkinter  import ttk from tkinter import * def go(*args):   #处理事件,*args表示可变参数     print(comboxlist.get()) #打印选中的值 win=tkinter.Tk() #构造窗体 win.title("串口调试助手") win.iconbitmap('ooopic_1550641922.ico') Label(win, text = '串口').grid(row=0,column=0) comvalue1=tkinter.StringVar()#窗体自带的文本,新建一个值 comboxlist1=ttk.Combobox(win,textvariable=comvalue1,width=10) #初始化 comboxlist1["values"]=("COM1","COM2","COM3","COM4") comboxlist1.current(0)  #选择第一个 comboxlist1.grid(row=0,column=1) Label(win, text = '波特率').grid(row=1,column=0) comvalue2=tkinter.StringVar()#窗体自带的文本,新建一个值 comboxlist2=ttk.Combobox(win,textvariable=comvalue2,width=10) #初始化 comboxlist2["values"]=("2400","4800","9600","115200") comboxlist2.current(0)  #选择第一个 comboxlist2.grid(row=1,column=1) Label(win, text = '校验位').grid(row=2,column=0) comvalue3=tkinter.StringVar()#窗体自带的文本,新建一个值 comboxlist3=ttk.Combobox(win,textvariable=comvalue3,width=10) #初始化 comboxlist3["values"]=("NONE","EVEN") comboxlist3.current(0)  #选择第一个 comboxlist3.grid(row=2,column=1) Label(win, text = '数据位').grid(row=3,column=0) comvalue4=tkinter.StringVar()#窗体自带的文本,新建一个值 comboxlist4=ttk.Combobox(win,textvariable=comvalue4,width=10) #初始化 comboxlist4["values"]=("8","7") comboxlist4.current(0)  #选择第一个 comboxlist4.grid(row=3,column=1) Label(win, text = '停止位').grid(row=4,column=0) comvalue5=tkinter.StringVar()#窗体自带的文本,新建一个值 comboxlist5=ttk.Combobox(win,textvariable=comvalue5,width=10) #初始化 comboxlist5["values"]=("1","2") comboxlist5.current(0)  #选择第一个 comboxlist5.grid(row=4,column=1)     button1 = Button(win,text="打开串口",fg="black") button1.grid(row=5,column=1) text = Text(win, width=50) #30的意思是30个平均字符的宽度,height设置为两行 text.grid(row=0,column=2,rowspan=5) text2 = Text(win, height=5) #30的意思是30个平均字符的宽度,height设置为两行 text2.grid(row=8,column=0,rowspan=5,columnspan=3,sticky='E') button2 = Button(win,text="发送数据",fg="black") button2.grid(row=8,column=4) win.mainloop() 复制代码 最终效果图: 说实话这次tkinter的体验真的不是特别好, 可能习惯了图形化界面编程的我不太适应这种编程方式吧。 界面比较粗糙,没有完全实现我预想的, 不过还好,雏形算是有了。 下面我可能再去体验python其他图形化界面编程的方式,期待我的分享吧! 下面就是有时间在看看Python串口的功能加入进来,后面再分享给大家。

  • 回复了主题帖: 出一块 SINA31S 开发板 6600芯币或等值 E金币

    帮顶  壮哥  当年无心插柳啊

  • 回复了主题帖: 颁奖:读故事写评语喽~ KeysightCare邀您抢楼赢礼!颁奖啦~

    个人信息确认,感谢EE,感谢是德科技。

  • 回复了主题帖: 【年味大比拼】我们家小宝的第一个春节

    PS:元宵节到啦 吃汤圆是必须的  坚持了几十年 每年都吃 还有公司发的兔兔灯 只可惜小宝太小还不会玩

  • 发表了主题帖: Python Tinker学习笔记(二)

    本帖最后由 常见泽1 于 2019-2-20 13:23 编辑 此内容由EEWORLD论坛网友常见泽1原创,如需转载或用于商业用途需征得作者同意并注明出处 复习一下先,这个是最基本的,每个程式都需要 Tkinter 程序只需做三件事: 最小的 [Tkinter] 程序(基于Python3,Python2略有区别) from tkinter import * # import the Tkinter module root = Tk() # create a root window root.mainloop() # create an event loop 四 输入框Entry 输入框Entry是经常见到的界面控件之一,例如输入登陆账户密码、比如串口助手输入要发送的数据等等情况都需要用到,所以我们来看看这个控件 语法 语法格式如下: w = Entry( master, option, ... ) option主要用到的一般有: bg, font, show等等 实例: from tkinter import * # import the Tkinter module root = Tk() # create a root window L1 = Label(root,text="请输入") L1.pack(side = LEFT) E1 = Entry(root,bd =5) E1.pack(side = RIGHT) root.mainloop() 复制代码 运行效果: 五、文本框Text 文本框Text也是非常常用的一个控件 比如在大家经常用到的串口助手里,Text经常被用来作为显示串口接收的数据, 当串口接收到数据时,text将接收到的数据显示到界面中,so让我们来学习吧!! Text 控件可以显示网页链接, 图片, HTML页面, 甚至 CSS 样式表. 应用方法: 1.设置python Tkinter Text控件文本的方法 text.insert(index,string)  index = x.y的形式,x表示行,y表示列 向第一行插入数据,text.insert(1.0,'hello world') 2.清空python Tkinter Text控件文本的方法 #思路:从第一行清除到最后一行    text.delete(1.0,Tkinter.END) 实例: from tkinter import * # import the Tkinter module     root = Tk() # create a root window text = Text(root, width=50, height=10) #30的意思是30个平均字符的宽度,height设置为两行 text.pack() text.insert(INSERT, '0x55 ')  #INSERT表示输入光标所在的位置,初始化后的输入光标默认在左上角 text.insert(INSERT, '0x66 ') text.insert(INSERT, '0x77 ') text.insert(INSERT, '0x88 ') text.insert(INSERT, '0x99 ') text.insert(INSERT, '0xAA ') text.insert(INSERT, '0xBB ') text.insert(INSERT, '0xCC ') text.insert(INSERT, '0xDD ') text.insert(END, 'show is over') root.mainloop() 复制代码 运行效果: 六、布局控件 几个最主要的控件已经都基本学习了一下,主要想模仿做个简单的界面 下面就开始看一些页面控件布局了 tkinter 共有三种几何布局管理器,分别是:pack布局,grid布局,place布局 Pack布局前面几节都有用到,复杂的应用暂时没用 主要看下grid布局 grid布局又被称作网格布局,是最被推荐使用的布局。程序大多数都是矩形的界面,我们可以很容易把它划分为一个几行几列的网格,然后根据行号和列号,将组件放置于网格之中。使用grid 布局时,需要在里面指定两个参数,分别用row 表示行,column 表示列。需要注意的是 row 和 column 的序号都从0 开始。 实例: 如果创建两个Label,直接用pack,两个Label如下图所示 但是如果我想指定两个label 在同一行 这时候grid就可以上场了 from tkinter import * # import the Tkinter module root = Tk() # create a root window root.title('title') root.geometry('300x200') label1 = Label(root, text = 'i am label1') label1.grid(row=0) label2 = Label(root, text = 'i am label2') label2.grid(row=0, column=1) root.mainloop() 复制代码 当然这只是简单的例子 在多个控件时,使用表格1里的option参数即可以完成复杂的界面布局

  • 回复了主题帖: 求国产无刷电机控制芯片?

    峰岹科技——国内电机驱动IC拓荒者 主要特点 峰岹(Fortior)        FU6831、FU6811、FU6818          芯片内置pre-driver,LDO,运放等,双核处理器(8051+DSP),主要市场:风机吊扇油烟机

  • 2019-02-18
  • 回复了主题帖: Python Tinker学习笔记(一)

    flyword 发表于 2019-2-18 14:33 也有基于python的Qt啊
    pyqt 不过貌似比较麻烦庞大

  • 回复了主题帖: 【年味大比拼】我们家小宝的第一个春节

    qwqwqw2088 发表于 2019-2-17 20:43 厉害,小宝宝能收到5位数红包也真够强了,,,
    因为是第一年  很多亲戚都给 给的多 明年就没这么多了:loveliness:

  • 回复了主题帖: 大家GD32E230的板子玩起来了没有啊?

    一直没玩  觉得这型号好像用的不多 一直没动它 有空试一下你这个问题

  • 回复了主题帖: 只会修适配器充电头的菜鸟,想提升做工程。

    你这有实践经验和维护经验 在和理论结合 还不飞龙在天?

  • 发表了主题帖: Python Tinker学习笔记(一)

    本帖最后由 常见泽1 于 2019-2-20 13:23 编辑 此内容由EEWORLD论坛网友常见泽1原创,如需转载或用于商业用途需征得作者同意并注明出处 一直在简单看看python,这次项目需要做个界面,最好是要跨平台的,之前考虑QT,但是树莓派上QT跨平台编译一直装这有问题,后来发现Python不就可以么? 于是决定用python做个界面,但是做界面貌似不如QT图形化界面那么简单。最后发现了Python带的Tinker界面编程,很多控件都可以通过语言进行创建,还不是很习惯。分享下我的简单学习控件心得。TK 简要描述TK 是与 TCL 语言关系最密切、且被广泛使用的图形库,TCL 语言和 TK 都由 John Ousterhout 开发。虽然 TK 于 1991 年作为 X11 库出现,但实际上它从那时起就被移植到每一种流行的 GUI。(它与 Python 逐渐拥有“标准”GUI 的情形相似。)现在,大多数流行语言和很多小型语言都有 TK 绑定(Tkinter 模块)。 学习基本知识实际上,Tkinter 程序只需做三件事:最小的 Tkinter程序代码(基于Python3,Python2略有区别)from tkinter import * # importthe Tkinter moduleroot = Tk() # create a rootwindowroot.mainloop() # create an eventloop 一 按钮Tkinter 按钮组件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。应用的方式:w = Button ( master, option=value, ... )master: 按钮的父容器。options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。 实例:from tkinter import * # import the Tkinter module def pressOk():     print("button is press") def pressCancle():     print("button is released")     root = Tk() # create a root window button1 = Button(root,text="打开",fg="black",command=pressOk) button1.pack() root.mainloop() # create an event loop 复制代码 运行结果: 二 Combobox Combobox是一个下拉列表选择框,在界面很多场景都会用到。 例如串口助手选择串口的COM口,选择波特率的数值,选择数据的位数、选择奇偶校验等等,再例如网络调试助手选择TCP UDP等等模式。应用简单且广泛。 To create a ttk.Combobox widget as the child of a given parent widget:     w = ttk.Combobox(parent, option=value, ...) 实例: import tkinter from  tkinter  import ttk from tkinter import * def go(*args):   #处理事件,*args表示可变参数     print(comboxlist.get()) #打印选中的值 win=tkinter.Tk() #构造窗体 comvalue=tkinter.StringVar()#窗体自带的文本,新建一个值 comboxlist=ttk.Combobox(win,textvariable=comvalue) #初始化 comboxlist["values"]=("1","2","3","4") comboxlist.current(0)  #选择第一个 comboxlist.bind("",go)  #绑定事件,(下拉列表框被选中时,绑定go()函数) comboxlist.pack() win.mainloop() 复制代码 运行结果: 下拉框里分别是1,2,3,4 三、        LABEL LABEL用途也很广泛,以前用QT C#等图形化编程的时候,都是直接拖拽控件,然后输入要输入的字符就行了,TK得自己找到方法创建LABEL,输入的内容也得自己在语言里搞定,暂时不是很习惯! 属性 text        要现实的文本 bg         背景颜色 font        字体(颜色, 大小) width      控件宽度 height     控件高度 运行结果:

  • 回复了主题帖: 爱好者 求有缘人指导单片机入门

    刘小天 发表于 2019-2-17 17:50 我这个就是demo
    就从该单片机的简单程序开始搞起  电路不复杂 不难

  • 2019-02-17
  • 回复了主题帖: 【年味大比拼】我们家小宝的第一个春节

    hellokt43 发表于 2019-2-17 16:21 大胖小子
    一下就被你抓到重点 哈哈哈

  • 回复了主题帖: 求助:stm32f407的SWD调试到底需要几条线?

    虾哥说的对  我们103量产产品 都是用三线  仿真器不给板子供电 SWDIO和SWCLK和GND  板子自己供电

  • 上传了资料: 清风STM32F051 按键查询(库函数)源码

  • 上传了资料: 清风STM32F051开发板systick(库函数)源码

  • 上传了资料: STM32F051 led闪烁(库函数)

  • 上传了资料: STM32F051 TOUCH KEY程序源码

  • 上传了资料: 野火STM32F103-MINI开发板用户手册

  • 上传了资料: 清风STM32F051开发板教程

最近访客

< 1/6 >

统计信息

已有1843人来访过

  • 芯币:8580
  • 好友:35
  • 主题:364
  • 回复:6260
  • 课时:--
  • 资源:193

留言

你需要登录后才可以留言 登录 | 注册


zzf2355 2013-6-8
您好,请问学习msp430g2553需要哪些手册?能否讨个!邮箱:zzf2355@live.com。现在是大二学生,急需学习!
soso 2011-1-18
常见泽1: SOSO姐
liweifang22 2011-1-4
线路板、贴片专业生产厂家!全国最实惠!折扣优惠!样板50元/款起。我厂为专业PCBA样板、中小批量生产及代工生产厂商,旨以客户的最大边际效益为出发。拥有先进的线路板及贴片、插件加工的专用生产、检测设备,通过不断引进国际先进的工艺技术及科学的管理方法,提供PCB及SMT一站式无忧服务。欢迎咨询!李小姐13714033721。QQ:31985159
查看全部