GVKun编程网logo

如何在Tkinter中获取具有2个命令的按钮(tkinter获取entry内容)

14

对于想了解如何在Tkinter中获取具有2个命令的按钮的读者,本文将是一篇不可错过的文章,我们将详细介绍tkinter获取entry内容,并且为您提供关于python–在tkinter中可以有一个垂直

对于想了解如何在Tkinter中获取具有2个命令的按钮的读者,本文将是一篇不可错过的文章,我们将详细介绍tkinter获取entry内容,并且为您提供关于python – 在tkinter中可以有一个垂直方向的按钮吗?、Python-如何在Tkinter中将参数传递给Button命令?、str对象没有属性在tkinter中获取、tkinter 按钮的多个命令的有价值信息。

本文目录一览:

如何在Tkinter中获取具有2个命令的按钮(tkinter获取entry内容)

如何在Tkinter中获取具有2个命令的按钮(tkinter获取entry内容)

我有以下代码行:nu和apendin命令由于某些原因无法正常工作。如果我删除其中一个但它们不能一起工作,则可以使用。关于如何解决此问题的任何想法。

谢谢x

答案1

小编典典

您可以使用lambda函数尝试这样的事情

login_button = Button(root, text="Click here to enter data", command=lambda:[main_menu(),apending_to_text_file()])

python – 在tkinter中可以有一个垂直方向的按钮吗?

python – 在tkinter中可以有一个垂直方向的按钮吗?

是否可以垂直定位tk.Button或ttk.Button?有点像定向tk.Scrollbar的方式self.scrlbr = tk.Scrollbar(master,orient = vertical)?

尝试了tk.Button(* args).pack(fill = tk.Y),但它没有提供所需的效果 – 按钮仍然是水平方向的.

在手册页中找不到任何内容,但也许有一些不太明确的方法?

最佳答案
按钮小部件不提供此选项,但您可以模拟按钮小部件以在需要时获得效果.如上所述,一种方法是使用包含旋转文本的图像.根据您的主题,您还可以使用画布创建一个按钮,该按钮允许您使用角度选项旋转自身绘制的文本.这在Windows主题上看起来很奇怪,但在使用的小部件是Tk(而不是ttk小部件)或ttk时看起来很正常,前提是主题是使用Tk绘制元素的主题(unix上的默认值).

它看起来如何的粗略演示:

enter image description here

import tkinter as tk
import tkinter.font as tkfont
main = tk.Tk()
font = tkfont.nametofont("TkDefaultFont")
label = "Click Me"
height = font.measure(label) + 4
width = font.metrics()['linespace'] + 4
canvas = tk.Canvas(main,height=height,width=width,background="SystemButtonFace",borderwidth=2,relief="raised")
canvas.create_text((4,4),angle="90",anchor="ne",text=label,fill="SystemButtonText",font=font)
canvas.bind("figure(relief="sunken"))
canvas.bind("figure(relief="raised"))
canvas.place(x=5,y=height + 10)
main.mainloop()

Python-如何在Tkinter中将参数传递给Button命令?

Python-如何在Tkinter中将参数传递给Button命令?

假设我Button在Python中使用Tkinter进行了以下操作:

import Tkinter as Tkwin = Tk.Toplevel()frame = Tk.Frame(master=win).grid(row=1, column=1)button = Tk.Button(master=frame, text=''press'', command=action)

action当我按下按钮时会调用该方法,但是如果我想向该方法传递一些参数action呢?

我尝试使用以下代码:

button = Tk.Button(master=frame, text=''press'', command=action(someNumber))

这只是立即调用该方法,而按该按钮则无济于事。

答案1

小编典典

我个人更喜欢lambdas在这种情况下使用,因为imo更加简单明了,并且如果你无法控制被调用的方法,也不会强迫你编写很多包装方法,但这当然是一个问题。

这就是使用lambda的方式(请注意,功能模块中还存在一些currying的实现,因此你也可以使用它):

button = Tk.Button(master=frame, text=''press'', command= lambda: action(someNumber))

str对象没有属性在tkinter中获取

str对象没有属性在tkinter中获取

显然,您的response列表包含一些与字典混合的字符串。您可以检查attribute的类型,如果不是dict,则跳过它。

available_attributes.extend([attribute.get('name') for attribute in response if isinstance(attribute,dict)])

tkinter 按钮的多个命令

tkinter 按钮的多个命令

至少三个选项:

使用 or(如果参数使用 lambda):

from tkinter import Tk,Button


root = Tk()

Button(root,text='Press',command=lambda: print('hello') or root.destroy() or print('hi')).pack()

root.mainloop()

使用 or 很重要,因为 and 不起作用(根本不知道为什么或如何工作)

或使用函数定义:

from tkinter import Tk,Button


def func():
    print('hello')
    root.destroy()
    print('hi')


root = Tk()

Button(root,command=func).pack()

root.mainloop()

或带有 lambda 的列表:

from tkinter import Tk,command=lambda: [print('hello'),root.destroy()]).pack()

root.mainloop()

关于如何在Tkinter中获取具有2个命令的按钮tkinter获取entry内容的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于python – 在tkinter中可以有一个垂直方向的按钮吗?、Python-如何在Tkinter中将参数传递给Button命令?、str对象没有属性在tkinter中获取、tkinter 按钮的多个命令的相关知识,请在本站寻找。

本文标签: