python tkinter控件布局项目实例


Posted in Python onNovember 04, 2019

这篇文章主要介绍了python tkinter控件布局项目实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

代码部分:

from tkinter import *
import tkinter.messagebox as messagebox

class Tkdemo():
  def __init__(self):
    master = Tk()
    master.title("missWjz")
    master.geometry('800x800')
    #创建菜单栏
    menubar = Menu(master)
    master.config(menu=menubar)

    #创建下拉菜单栏
    filemenu = Menu(menubar,tearoff=0)

    menubar.add_cascade(label="文件",menu=filemenu)
    filemenu.add_command(label="新建",command=self.newfile)
    filemenu.add_command(label="打开",command=self.openfile)
    filemenu.add_command(label="保存",command=self.savefile)
    #增加分割线
    filemenu.add_separator()
    filemenu.add_command(label="关闭填写",command=master.quit)

    #Label(文字)
    title = Label(master,text="这是一份Tkinter的问卷调查",font=15,bg='white',fg='red')
    title.pack()

    #Frame 将问题1放在frame_1中
    frame_1 = Frame(master)
    frame_1.pack(fill=X)

    #问题1
    label_1 = Label(frame_1,text="1、我们第一次见面的地方?")
    label_1.grid(row=1,column=0)

    #Entry 问题一的输入框
    self.name = StringVar()
    entryname = Entry(frame_1,textvariable=self.name)
    #通过grid方法定位
    entryname.grid(row=1,column=1)

    #Button 按钮
    getname = Button(frame_1,text="点击确认",command=self.getname)
    getname.grid(row=1,column=3)

    #Frame 将问题二放在frame_2中
    frame_2 = Frame(master)
    frame_2.pack(fill=X)

    #Label 问题二
    label_2 = Label(frame_2,text="2、我记得你生日")
    label_2.grid(row=1,column=0)

    #Radiobutton 选择按钮
    self.sex = StringVar()
    sex_male = Radiobutton(frame_2,text='记得',fg='blue',variable=self.sex,value='记得',command=self.getsex)
    sex_male.grid(row=1,column=2)
    sex_female = Radiobutton(frame_2,text='不可能',fg='red',variable=self.sex,value="不可能",command=self.getsex)
    sex_female.grid(row=1,column=4)

    #Frame 问题3 放在frame_3中
    frame_3 = Frame(master)
    frame_3.pack(fill=X)

    #Label 问题3
    label_3 = Label(frame_3,text="3、你对我的重要性:")
    label_3.grid(row=1,column=0)

    #Scale 滑动条
    self.age = Scale(frame_3,from_=0,to=100,orient=HORIZONTAL,resolution=1)
    self.age.grid(row=1,column=1)

    #Button 按钮
    getage = Button(frame_3,text='点我确认',command=self.getage)
    getage.grid(row=1,column=2)

    #问题4 置于 Frame_4 中
    frame_4 = Frame(master)
    frame_4.pack(fill=X)

    #问题四
    label_4 = Label(frame_4,text="4、去除一段过去:")
    label_4.grid(row=1,column=0)

    #列表
    self.listbox = Listbox(frame_4)
    self.listbox.grid(row=1,column=1)
    for item in ["第一次看电影","第一次拍照留影","第一次一起吃饭","第一次一起出去玩"]:
      self.listbox.insert(END,item)

    #s删除按钮
    DELE = Button(frame_4,text="删除",command=lambda listbox=self.listbox: listbox.delete(ANCHOR))
    DELE.grid(row=1,column=1)

    #确认按钮
    review = Button(frame_4,text='点我确认',command = self.review)
    review.grid(row=1,column=2)

    #问题五
    frame_5 = Frame(master)
    frame_5.pack(fill=X)

    label_5 = Label(frame_5,text='5、选择一个图案:')
    label_5.grid(row=1,column=0)
    self.canvas = Canvas(frame_5,width=200,height=200,bg='white')
    self.canvas.grid(row=1,column=1)

    self.pattern = StringVar()

    #图案选择按钮
    btn_first = Button(frame_5,text = "第一个",command =self.First_display)
    btn_second = Button(frame_5,text = "第二个",command =self.Second_dispaly)
    btn_third = Button(frame_5,text = "第三个",command =self.Third_display)
    btString = Button(frame_5, text="确定", command=self.displayString)
    btn_first.grid(row=2,column=2)
    btn_second.grid(row=2,column=3)
    btn_third.grid(row=2,column=4)
    btString.grid(row=2,column=5)

    #问题六 Frame_6
    frame_6 = Frame(master)
    frame_6.pack(fill=X)

    label_6 = Label(frame_6,text="6、在一起的天数:")
    label_6.grid(row=1,column=0)

    #(Spinbox)
    self.number = Spinbox(frame_6,from_=0,to=200)
    self.number.grid(row=1,column=1)

    #确定按钮
    number = Button(frame_6,text="确定",command=self.getnumber)
    number.grid(row=1,column=2)

    #问题7 frame_7
    frame_7 = Frame(master)
    frame_7.pack(fill=X)

    #问题
    label_7 = Label(frame_7,text="7、印象最深的一天:")
    label_7.grid(row=1,column=0)

    #滚轮
    scrollbar = Scrollbar(frame_7)
    scrollbar.grid(row=1,column=1)

    #列表
    self.listbox2 = Listbox(frame_7,height=5,yscrollcommand=scrollbar.set)
    for i in range(99):
      self.listbox2.insert(END,str(i))
    self.listbox2.grid(row=1,column=1)

    #确定按钮
    star = Button(frame_7,text="确定",command=self.getstar)
    star.grid(row=2,column=1)

    #问题8
    frame_8 = Frame(master)
    frame_8.pack(fill=X)

    self.agree = StringVar()
    #Checkbutton 勾选按钮
    agree = Checkbutton(frame_8,text="我确定此问卷信息准确无误",variable=self.agree,offvalue='不确定',command=self.getagree)
    agree.grid(row=1,column=1)

    #问题9 Frame_9
    frame_9 = Frame(master)
    frame_9.pack()
    submit = Button(frame_9,text="提交",command=self.allsubmit)
    submit.grid(row=1,column=1)

    #问题十
    frame_10 = Frame(master)
    frame_10.pack()
    #容器框
    self.group = LabelFrame(frame_10,text="特别鸣谢",padx=5,pady=5)
    self.group.grid()
    w = Label(self.group,text="本问卷由衷感谢:https://github.com/James95107/Tkinter/blob/master")
    w.pack()

    master.mainloop()




  def getname(self):
    name = self.name.get()
    print(name)

  def getsex(self):
    sex = self.sex.get()
    print(sex)

  def getage(self):
    print(self.age.get())

  def review(self):
    print(self.listbox.get(0, END))

  def getstar(self):
    print(self.listbox2.get(ACTIVE))

  def displayString(self):
    self.canvas.create_text(60, 40, text="您真棒!!!", font="Tine 10 bold underline", tags="string")
    print(self.pattern)

  def getnumber(self):
    print(self.getnumber())

  def getagree(self):
    print(self.agree.get())
  #打印心形
  def First_display(self):
    self.canvas.create_arc((5, 5, 85, 85),
           width=2,
           outline="red",
           start=0,
           extent=180,
           style=ARC)

    self.canvas.create_arc((85, 5, 165, 85),
           width=2,
           outline="red",
           start=0,
           extent=180,
           style=ARC)

    self.canvas.create_arc((5, -45, 165, 125),
           width=2,
           outline="red",
           start=180,
           extent=180,
           style=ARC)
    self.pattern = 'First'
  #打印丘比特心形
  def Second_dispaly(self):
    self.canvas.create_line((0, 55, 200, 55),
            width=2,
            fill='red',
            arrow=LAST,
            arrowshape=(20, 40, 10)
            )
    self.canvas.create_arc((5, 5, 85, 85),
           width=2,
           outline="red",
           start=0,
           extent=180,
           style=ARC)

    self.canvas.create_arc((85, 5, 165, 85),
           width=2,
           outline="red",
           start=0,
           extent=180,
           style=ARC)

    self.canvas.create_arc((5, -45, 165, 125),
           width=2,
           outline="red",
           start=180,
           extent=180,
           style=ARC)
    self.pattern = 'Second'
  #打印爱心
  def Third_display(self):
    self.canvas.create_text((90, 70), text="武峻竹",
            font=('微软雅黑', 20, 'bold'),
            fill='red'
            )
    self.canvas.create_arc((5, 5, 85, 85),
           width=2,
           outline="red",
           start=0,
           extent=180,
           style=ARC)

    self.canvas.create_arc((85, 5, 165, 85),
           width=2,
           outline="red",
           start=0,
           extent=180,
           style=ARC)

    self.canvas.create_arc((5, -45, 165, 125),
           width=2,
           outline="red",
           start=180,
           extent=180,
           style=ARC)
    self.pattern = 'Third'

  #属性
  #文件栏
  def newfile(self):
    self.file = open(r"wujunzhu.txt",'w')
    self.file.close()
    messagebox.showinfo("创建文件","您已经成功创建个人资料文档") #显示对话框

  def openfile(self):
    f = open(r"wujunzhu.txt",'r')
    try:
      f_read = f.read()
      print(f_read)
    finally:
      f.close()

  def savefile(self):
    messagebox.showwarning("保存文件","提交即保存!")

  def allsubmit(self):
    with open('D:cpwords.txt','w',encoding='utf-8') as f:
      f.write('我们第一见面的地方是:')
      f.write(self.name.get())
      f.write('\n我记得你生日:')
      f.write(self.sex.get())
      f.write('\n你对我的重要性:')
      f.write(str(self.age.get()))
      f.write('\n要去除一段过去是:')
      for i in self.listbox.get(0, END):
        f.write(i)
        f.write(" ,")
      f.write('\n在一起的天数是:')
      f.write(self.number.get())
      f.write('\n印象最深的一天是:')
      f.write(self.listbox2.get(ACTIVE))
      f.write('\n')
      f.write(self.agree.get())
      f.write('本调查问卷的真实性')
    messagebox.showinfo('Success', '恭喜您已成功提交 ')  # 显示对话框

Tkdemo()

执行结果:

python tkinter控件布局项目实例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python threading多线程编程实例
Sep 18 Python
利用Python开发微信支付的注意事项
Aug 19 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
Flask之pipenv虚拟环境的实现
Nov 26 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
python设置中文界面实例方法
Oct 27 Python
python实现简单区块链结构
Apr 25 Python
在Django中使用MQTT的方法
May 10 Python
python requests抓取one推送文字和图片代码实例
Nov 04 #Python
python 五子棋如何获得鼠标点击坐标
Nov 04 #Python
Pandas 缺失数据处理的实现
Nov 04 #Python
python tkinter canvas使用实例
Nov 04 #Python
python matplotlib饼状图参数及用法解析
Nov 04 #Python
python制作朋友圈九宫格图片
Nov 03 #Python
python使用yield压平嵌套字典的超简单方法
Nov 02 #Python
You might like
浅谈PHP语法(1)
2006/10/09 PHP
一个php作的文本留言本的例子(四)
2006/10/09 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
python中的列表推导浅析
2014/04/26 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
关于Java String的一道面试题
2013/09/29 面试题
考试退步检讨书
2014/01/15 职场文书
小学优秀学生评语
2014/12/29 职场文书
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android