python tkinter学习 之Label,Button,Listbox

下了qt为了去进行界面开发,结果不是搞了两天还是没能搞能用。

气死我了,直接上python的界面开发好了。

老实说这个领域我是一片空白,百度随便找到了tkinter,之前用过easygui,没想到tkinter在下载python的时候已经提前下好了,倒不用"pip install Tkinter"了。

很舒服,看着教程,学了一点皮毛。

可以做出来用Stringvar和mainloop了。

之后继续学习,继续更新。

希望我的小乖乖女友能在学习上更上一层楼。



网上搜到了一个非常好的教程附上链接

点击打开链接

照着教程先学习tkinter的label和button,做了他的例子

这里贴一下我的代码

import tkinter as tk

def hit_me():
    global on_hit
    if on_hit==False:
        on_hit=True
        #global var
        var.set('good u followed me')
        print(var.get())# 这里为了看看他到底改变了var没有。结果是改变了
    else:
        on_hit=False
        var.set('123')
        print(var.get())

#建立视窗
window=tk.Tk()

window.title('yzc')
#设置窗口大小
window.geometry('200x300')
#设置lable标签
var = tk.StringVar()  # 用.set()和.get()来设置和得到
l = tk.Label(window,
            textvariable=var, #注意这里如果是变量的话,第二个参数一定是textvariable而不是text,本人被坑了。
            bg='green',
            font=('Arial', 12),
            width=16, height=3)
l.pack()
#设置button
b=tk.Button(window,
            text='hit me',
            width=15,height=6,
            command=hit_me)
b.pack()

#主循环
window.mainloop()

before the click


after click. notice that the label gets its text.



然后看了第二课,学习tkinter的entry和text。

entry和text窗口都是可以编辑的。

贴一下我的代码

import tkinter as tk

window=tk.Tk()

window.title('entry&text')

window.geometry('200x400')

#定义Entry
#Entry构造的第一个参数是在什么窗口中,
#第二个参数是用什么字符展示你输入的东西
e=tk.Entry(window,show='*')
e.pack()
#两个函数的定义为了command的功能
def insert_point():
    var=e.get()#得到entry里面的值
    #第一个参数inset表示插入到指针位置
    t.insert('insert',var)

def insert_end():
    var=e.get()
    t.insert('end',var)

b1=tk.Button(window,text='insert point',command=insert_point)
b1.pack()


b2=tk.Button(window,text='insert to end',command=insert_end)
b2.pack()
#定义text文本框,text里自带insert函数
t=tk.Text(window,height=2)
t.pack()

window.mainloop()

不放图了,Windows下这个很丑。。毕竟代码也很简单,大家共勉吧。


晚上继续学习了tkinter的listbox,按照教程,也自己查了查listbox的文档,最后listbox添加的时候忘记加lb.pack()了,很坑。

源码:

import tkinter as tk

window=tk.Tk()
window.title('print selection')
window.geometry('200x200')

#select 存放被选择的那个value
select=tk.StringVar()
select.set('00000')
def insert_end():
    # 得到当前选定的值
    var = lb.get(lb.curselection())
    select.set(var)

#定义label用于显示
l=tk.Label(window,
           bg='yellow',
           width=4,height=6,
           textvariable=select)
l.pack()

#定义button用于按下
b1=tk.Button(window,
             text='print selection',
             width=19,height=4,
             command=insert_end)
b1.pack()



#定义listbox


#第一种添加选项的方式
# lb=tk.Listbox(window)
# ops=['11','22','33','44']
# for i in ops:
#     lb.insert('end',i)


#第二种添加选项的方式
ops1=tk.StringVar()
ops1.set((11,22,33,44,55))
lb=tk.Listbox(window,listvariable=ops1)
lb.pack()

#任何一个组件都不能忘记xxx.pack()!

tk.mainloop()

生成的界面很丑,不过可以用listbox了。

我没有去过多纠结按钮大小和界面的大小,只是随便设计了几个尺寸。


版权声明:本文为Yonggie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Yonggie/article/details/79700194

智能推荐

Springboot整合rabbitMQ

依赖: 配置文件application.yml RabbitConfig 消息生产者RabbitProducer 消息消费者RabbitCustomer 通过Controller进行调用 启动项目后调用接口: 结果:...

Thread.join()方法的使用

如果一个线程A执行了thread.join()语句,代表当前线程A等待thread线程终止后才从thread.join()方法返回 并且这个方法具有超时特性,可以添加参数设置 输出结果: jdk中Thread.join()方法的源码(进行了部门调整)   每个线程终止的条件是前驱线程的终止,每个线程等待前驱线程终止后,才从join()方法返回,  当线程终止时,会调用自身的no...

linux服务器部署jenkins笔记

安装jenkins参考文档:https://blog.csdn.net/tomatocc/article/details/83930714 1. 打开jenkins官网:https://jenkins.io/download/ 将war包下载到本地 **ps:**这里要注意的是要下载左边下方的war包,不要下载右边下面的war包。左边是稳定版本,右边是最新版本,建议大家使用稳定版本(我刚开始下载的...

k8s部署elasticsearch集群

百度营销大学     环境准备 我们使用的k8s和ceph环境见: https://blog.51cto.com/leejia/2495558 https://blog.51cto.com/leejia/2499684 ECK简介 Elastic Cloud on Kubernetes,这是一款基于 Kubernetes Operator 模式的新型编排产品,用户可使用该产品在...

saas-export项目-AdminLTE介绍与入门

AdminLTE介绍 (1)AdminLTE是什么? AdminLTE是一款建立在bootstrap和jquery之上的开源的模板主题工具 (2)AdminLTE有什么特点? 提供一系列响应的、可重复使用的组件, 并内置了多个模板页面 自适应多种屏幕分辨率,兼容PC和移动端 快速的创建一个响应式的Html5网站 AdminLTE 不但美观, 而且可以免去写很大CSS与JS的工作量 AdminLTE...

猜你喜欢

MyBatis中ResultMap结果集映射

用于解决属性名和字段名不一致的情况: resultMap 元素是 MyBatis 中最重要最强大的元素。...

编写一个shell

编写shell的过程: 1.从标准输入中读入一个字符串。 2.解析字符串 3.创建一个子进程的执行程序。 4.子进程程序替换。 5.父进程等待子进程退出。...

WEB自动化测试中Xpath定位方法

前言: Xpath是在XML文档中查找信息的一种语言,使用路径表达式来选取XML文档中的节点或节点集,由于XML与HTML结构类似(前者用于传输数据,后者用于显示数据),所以Xpath也常用于查找HTML文档中的节点或节点集。 一  路径表达式: 路径以“/”开始     表示找到满足该绝对路径的元素; 路径以//”开始  ...

力扣困难难度 第4题 寻找两个正序数组的中位数

先看一眼题 我的思路: 设置下标i,j分别用于遍历两个数组,初始值均为0,直到找到两个数组中从小到大的第第length/2个数为止结束循环,length为两个数组长度之和。 ·每次比较nums[i]nums[j],如果前者小则i++,否则j++ ·循环结束时,如果count已经达到length/2,则说明已经找到了中位数,[注意:此时有可能正好其中一个数组遍历完了!所以...

[国家集训队]小Z的袜子(莫队)

[国家集训队]小Z的袜子 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这NN只袜子从1到NN编号,然后从编号LL到RR(LL 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同...