python tkinter 获得按钮的文本值

背景

最近本菜鸡在学习 python GUI,从 tkinter 入门,想先做个小软件练习一下
思来想去,决定做一个 计算器
计算器代码在这里,传送门

问题重现

但直接使用循环创建数字按钮时遇到了问题,问题代码如下

for i in range(3):
    num_frame = tk.Frame(major_frame)
    num_frame.pack()
    for count in range(3*i+1, 3*i+4):
        button = tk.Button(
            num_frame,
            text = count,
            activeforeground = "blue",
            activebackground = "pink",
            width = "13",
            command = lambda : entry.insert("end", count)
        )
        button.grid(row = i, column = count)

全部代码见
每当点击按钮时,输入框中出现的永远是 9,因为,循环结束后 count 的值就变成了 9,点击按钮在输入框中输入 count 的值就是 9
找到问题后,我便想办法解决这个问题
我尝试过 将每一个实例化的 Button 对象存入列表或字典,但还是无法获得正确的索引,也就无法获得按钮上的文本

解决方法

通过强大的百度,我找到了解决方法,那就是 — 自己创建一个 Button 类

代码如下

import tkinter
class myButton():
    def __init__(self, frame, text, entry, **kwargs):
        side = kwargs.get('side') if 'side' in kwargs else ()
        self.btn = tkinter.Button(
            frame,
            text = text,
            activeforeground="blue",
            activebackground="pink",
            width="13",
            command=lambda :entry.insert("end", text)
        )
        if side:
            self.btn.grid(row=side[0], column=side[1])
        else:
            self.btn.pack()

参数讲解

  • frame,Frame 对象,指定按钮要创建在哪一个 Frame 对象中
  • text,字符串 / 数字,按钮上显示的文本以及 点击按钮要获得的文本
  • entry,Entry 对象,点击按钮后文本出现在哪里
    • kwargs,包括 side
  • side,元组,设置按钮的位置

通过实例化一个 myButton 对象即可创建出一个能获得按钮文本的 Button 对象

列举数字按钮

for i in range(4):
    num_frame = tk.Frame(major_frame)
    num_frame.pack()
    if i < 3:
        for count in range(3*i+1, 3*i+4):
            myButton(num_frame, count, word_entry, side=(i, count))
        continue
    myButton(num_frame, 0, word_entry, side=(i, 0))

效果图

到此这篇关于python tkinter 获得按钮的文本值的文章就介绍到这了,更多相关python tkinter 按钮文本值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在python tkinter界面中添加按钮的实例

    tkinter是python自带的GUI库,可以实现简单的GUI交互,该例子添加了五种不同效果的Button,如图: from tkinter import * from tkinter import messagebox #python3.0的messagebox,属于tkinter的一个组件 top = Tk() top.title("button test") def callback(): messagebox.showinfo("Python command&quo

  • Python tkinter布局与按钮间距设置方式

    新建label与button,并设置位置(grid) import tkinter as tk root = tk.Tk() label = tk.Label(root, text = 'Label') label.grid(column = 3, row = 8) button = tk.Button(root, text = 'Button') button.grid(column = 5, row = 1) 按钮间距设置 col_count, row_count = root.grid_s

  • python基于tkinter点击按钮实现图片的切换

    tkinter是python的标准Tk GUI工具包的接口,在windows下如果你安装的python3,那在安装python的时候,就已经自动安装了tkinter了 如果是在linux系统中,则不会自动安装tkinter,需要通过 sudo apt-get install python-tk 手动安装 首先先介绍一下,tkinter本身只支持gif等少数几个图片格式,如果图片并不复杂,建议直接右击图片,进入编辑,在画图界面将图片另存为gif格式就可以使用了(连png和jpeg都不支持...真的

  • python3 tkinter实现点击一个按钮跳出另一个窗口的方法

    如下所示: #-*- encoding:utf-8 -*- from tkinter import * root = Tk() def create(): top = Toplevel() top.title('Python') v1 = StringVar() e1 = Entry(top,textvariable=v1,width=10) e1.grid(row=1,column=0,padx=1,pady=1) Button(top, text='出现2级').grid(row=1,col

  • Python 窗体(tkinter)按钮 位置实例

    如下所示: import tkinter def go(): #函数 print("go函数") win=tkinter.Tk() #构造窗体 win.title("hello zhaolin")#标题 win.geometry("800x800+300+0")#800宽度,800高度,x,y坐标,左上角 button=tkinter.Button(win,text="有种点我",command=go) #收到消息执行go函数

  • python-tkinter之按钮的使用,开关方法

    具体参考哪位大佬的,记不太清楚了. 直接上代码,大体逻辑是这样的. # -*- coding:utf-8 -*- from tkinter import * root=Tk() def g(): if b['text']=='开始': b['text']='关闭' print('开始') else: b['text']='开始' print('结束') b=Button(root,text='开始',font=('KaiTi',36,'bold'),bg='pink',fg='green',bd

  • Python的Tkinter点击按钮触发事件的例子

    如果要开发一个比较大的程序,那么应该先把代码封装起来,在面向对象编程中,就是封装成类 先看代码: import tkinter as tk class App: def __init__(self, root): root.title("打招呼测试") frame = tk.Frame(root) frame.pack() self.hi_there = tk.Button(frame, text="打招呼", fg="blue", comman

  • python tkinter 获得按钮的文本值

    背景 最近本菜鸡在学习 python GUI,从 tkinter 入门,想先做个小软件练习一下 思来想去,决定做一个 计算器 计算器代码在这里,传送门 问题重现 但直接使用循环创建数字按钮时遇到了问题,问题代码如下 for i in range(3): num_frame = tk.Frame(major_frame) num_frame.pack() for count in range(3*i+1, 3*i+4): button = tk.Button( num_frame, text =

  • 对python Tkinter Text的用法详解

    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) 以上这篇对python Tkinter Text的用法详解就是小编分享给大家的全部内容了,希望能给大家

  • python tkinter之 复选、文本、下拉的实现

    我就废话不多说了,直接看代码吧! import tkinter as tk from tkinter import ttk win = tk.Tk() win.title("Python GUI") # 添加标题 ttk.Label(win, text="Chooes a number").grid(column=1, row=0) # 添加一个标签0 ttk.Label(win, text="Enter a name:").grid(colum

  • python图形用户界面tkinter之按钮Button的使用说明

    目录 python tkinter按钮Button的使用 创建和设置窗口 按钮Button属性1 按钮Button属性2 修改Button属性 python tkinter的Button组件 Tkinter的布局方式有三种 python tkinter按钮Button的使用 创建和设置窗口 from tkinter import * #创建窗口对象 root = Tk() #窗口属性设置 root.title ('窗口标题') root.geometry('300x400') root.conf

  • python基于Tkinter库实现简单文本编辑器实例

    本文实例讲述了python基于Tkinter库实现简单文本编辑器的方法.分享给大家供大家参考.具体实现方法如下: ## {{{ http://code.activestate.com/recipes/578568/ (r1) from Tkinter import * from tkSimpleDialog import askstring from tkFileDialog import asksaveasfilename from tkMessageBox import askokcance

  • python TKinter获取文本框内容的方法

    如下所示: #coding:utf-8 import urllib,urllib2 import Tkinter #导入TKinter模块 ytm=Tkinter.Tk() #创建Tk对象 ytm.title("login") #设置窗口标题 ytm.geometry("300x300") #设置窗口尺寸 l1=Tkinter.Label(ytm,text="用户名") #标签 l1.pack() #指定包管理器放置组件 user_text=Tk

  • Python tkinter 多选按钮控件 Checkbutton方法

    目录 1.多选按钮的方法 1.2select() 1.2 deselect() 1.3 flash() 1.4 invoke() 1.5 toggle() 1.多选按钮的方法 以下为常用的方法: 方法描述deselect()清除多选按钮选中选项.flash()在激活状态颜色和正常颜色之间闪烁几次多选按钮,但保持它开始时的状态.invoke()可以调用此方法来获得与用户单击多选按钮以更改其状态时发生的操作相同的操作select()设置多选按钮为选中.toggle()选中与没有选中之间切换 1.2s

  • python tkinter组件使用详解

    这篇文章主要介绍了python tkinter组件使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.按钮 # 按钮 # bg设置背景色 btn = tkinter.Button(root,text = '按钮',bg = 'red') btn.pack() # fg设置前景色(文字颜色) btn1 = tkinter.Button(root,text = '按钮',fg = 'blue') btn1.pack() # font设置字体

随机推荐