import tkinter as tk #导入tkinter模块
class Application(tk.Frame): #定义Application类,派生于Frame类
def __init__(self,master=None): #构造函数
tk.Frame.__init__(self,master)
self.pack()
self.createWidgets() #声明对象方法,创建子组件
def createWidgets(self):
self.btnSayHi=tk.Button(self) #创建Button按钮组件
self.btnSayHi["text"]="Hello"
self.btnSayHi["command"]=self.sayHi #设置命令属性,绑定事件处理函数
self.btnSayHi.pack() #调用pack()方法调整位置和大小
self.btnQuit=tk.Button(self,text="Quit",command=root.destroy) #创建Quit按钮
self.btnQuit.pack()
def sayHi(self):
tk.messagebox.showinfo("Message","Hello World!") #弹出消息窗口
root=tk.Tk() #创建一个tk根窗口组件root
app=Application(master=root) #声明Application对象实例
app.mainloop() #调用组件mainloop()方法,进入事件循环
运行效果:
2.pack几何布局管理器
from tkinter import* #导入tkinter模块的所有内容
root=Tk();root.title("登录") #窗口标题
f1=Frame(root);f1.pack() #界面分为三个Frame
f2=Frame(root);f2.pack()
f3=Frame(root);f3.pack()
Label(f1,text="用户名").pack(side=LEFT) #标签放置在f1中,左停靠
Entry(f1).pack(side=LEFT) #单行文本框放置在f1中,左停靠
Label(f2,text="密 码").pack(side=LEFT) #标签放置在f2中,左停靠
Entry(f2,show="*").pack(side=LEFT) #单行文本框放置在f2中,左停靠
Button(f3,text="取消").pack(side=RIGHT) #取消按钮放置在f3中,右停靠
Button(f3,text="登录").pack(side=RIGHT) #登录按钮放置在f3中,右停靠
root.mainloop()
运行效果:
3.grid几何布局管理器
from tkinter import *
root =Tk()
Button(root,text="1").grid(row=0,column=0) #按钮1放置于0行0列
Button(root,text="2").grid(row=0,column=1) #按钮1放置于0行1列
Button(root,text="3").grid(row=0,column=2) #按钮1放置于0行2列
Button(root,text="4").grid(row=1,column=0)
Button(root,text="5").grid(row=1,column=1)
Button(root,text="6").grid(row=1,column=2)
Button(root,text="7").grid(row=2,column=0)
Button(root,text="8").grid(row=2,column=1)
Button(root,text="9").grid(row=2,column=2)
Button(root,text="0").grid(row=3,column=0,columnspan=2,sticky=E+W) #跨两列,左右紧贴
Button(root,text=".").grid(row=3,column=2,sticky=E+W) #左右紧贴
root.mainloop() #事件循环
from tkinter import *
root=Tk();root.title("登录")
root['width']=200;root['height']=80 #窗口宽度高度
Label(root,text="用户名",width=6).place(x=1,y=1) #绝对坐标(1,1)
Entry(root,width=20).place(x=45,y=1)
Label(root,text="密 码",width=6).place(x=1,y=20)
Entry(root,width=20,show='*').place(x=45,y=20)
Button(root,text="登录",width=8).place(x=40,y=40)
Button(root,text="取消",width=8).place(x=110,y=40)
root.mainloop()
运行效果:
用此方法时,需要提前设计好窗口的大小,以及各组件的位置大小。
#-- tkinter 一个跨平台的GUI库,对图形库TK的封装 可在win,linux或者mac下运行
import tkinter
# linux用命令进行tkinter安装 sudo apt-get install python3-tk(python3-tk)
root = tkinter.Tk() root.title('网格布局') root.minsize(300...
用Tkinter打造GUI开发工具(10)Tkinter小部件的pack布局
Tkinter 共有三种小部件的几何布局管理器,分别是:pack布局,grid布局,place布局。通过几何布局管理器控制窗体或容器中各个小部件的位置关系。首先介绍小部件的pack布局。
使用pack()方法的时候,默认先使用的放到上面,然后依次向下排,它会给我们的部件一个自认为合适的位置和大小,这是默认方式。pack(...
GUI(Graphics User Interface)使用图形用户界面编程,快速实现图形界面和用户的交互。(早期的都是基于控制台的程序,用户通过控制台和程序交互)。使用的模块(库文件):wxPython库和PyQT库文件
图形界面的是由一个个组件组成的,如图搭积木般拼装在一起,有的可以放其他的组件的组件就是容器
对象Objectives具体代码访问GitHub:https://github.com/Roc-J/Python-turtle/blob/master/code11/access.py
介绍对象(object)和类(class),通过类来描述对象
用数据域和方法来定义类
通过构造函数来创建对象,构造函数中进行初始化和一些数据字段初始化信息
面向对象编程能够使我们开发大规模软件和GUI 定义
面向对象python/Tkinter具体代码访问GitHub:https://github.com/Roc-J/Python-turtle/tree/master/code12通过一个程序来说明:class Employee:
empCount = 0
def __init__(self,name,salary):
self.name = name
packer最初开始时,拥有整个父组件容器的可用空间(如整个框架或顶层窗口的空间)
随着组件在某一条边上被打包,该组件获得了剩余空间中要求的一条边,剩余空间缩小。
经过先前的打包要求,空间缩小,后来的打包要求只能获得缩小后剩余空间的一条边。
组件都分配空间后,expand选项划分所有的剩余空间,fill选项和anchor选项在组件分...
1、pack布局:我们已经接触过tkinter的一种布局了,就是pack布局,它非常简单,我们不用做过多的设置,直接使用一个pack函数就可以了。
2、grid布局:grid布局可以理解为网格,或者表格,它可以把界面设置为几行几列的网格,我们在网格里插入我们想要的元素。这种布局的好处是不管我们如何拖动窗口,相对位置是不会变化的,而且这种布局也很简单。
3、place布局:它直接使用死板的位置坐标来...
耗时一个月,用python写的利用穿越火线交易所刷CF点的代码已经完成了。考虑到使用方便和学习的态度,我用Tkinter将源码创建为UI界面,如图所示。本文主要介绍如何将Tkinter创建的GUI打包为exe可执行文件,使用的是Pyinstaller。
1. pip来安装Pyinstaller模块。
2. 命令行输入:
pyinstaller -i 1.ico -F ...
Tkinter中的GUI总是有一个root窗口,不管你是主动或者别动获得.主窗口就是你的程序开始运行的时候创建的,在主窗口中你通常是放置了你主要的部件.另外,Tkinter脚本可以依据需要创建很多独立的窗口,主要的方法就是通过创建Toplevel对象。
每一个Toplevel对象都创建一个显示的窗口,不需要通过mainloop方法调用。
关于Toplevel和Tk部件:
一个Toplev
Tkinter是Python语言中最基础的GUI库,它的优点是学习成本低,不需要特别安装,功能方面也足够应付一般的需求。从今天开始,我们开始一个使用Tkinter进行GUI编程的连载。首先看一个使用Tkinter开发的实例,接下来的说明都会结合这个程序。
源代码下载
本书中实战运用中提到的所有代码已经上传至GitHub。读者将下面链接中的代码下载到本地即可。
https://gi...