Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按钮标签-文本与文本变量_Python_User Interface_Button_Tkinter_Ttk - Fatal编程技术网

Python 按钮标签-文本与文本变量

Python 按钮标签-文本与文本变量,python,user-interface,button,tkinter,ttk,Python,User Interface,Button,Tkinter,Ttk,TTK按钮:文本与文本变量 我试图将按钮标签文本设置为“Hi”作为默认值,并在单击它时将其文本更改为“Hello” 我尝试了多种方法来改变文本 如果我将文本设置为“Hi”,这很好,但是每当我添加文本变量时,它就会中断并在按钮本身上不显示文本标签 添加这两个参数是否有问题 在tkinter中构造按钮时,使用text和textvariable参数,如下所示 来自Alan D.Moore使用Tkinter进行的Python GUI编程 将tkinter作为tk导入 从tkinter导入ttk root

TTK按钮:文本与文本变量 我试图将按钮标签文本设置为“Hi”作为默认值,并在单击它时将其文本更改为“Hello”

我尝试了多种方法来改变文本

如果我将
文本设置为“Hi”,这很好,但是每当我添加
文本变量时,它就会中断并在按钮本身上不显示文本标签

添加这两个参数是否有问题 在tkinter中构造按钮时,使用
text
textvariable
参数,如下所示

来自Alan D.Moore使用Tkinter进行的Python GUI编程

将tkinter作为tk导入
从tkinter导入ttk
root=tk.tk()
tvar=tk.StringVar()
def swaptext():
如果tvar.get()
tvar.set('There')
其他:
tvar.set('Hi')
#my_button=ttk.button(父项,text='Hi',textvariable=tvar,command=swaptext)#按钮标签为空
my_button=ttk.button(parent,text='Hi',command=swaptext)#可以工作,但没有可调用的文本变量来交换文本
我的按钮包()
root.mainloop()
如果默认的
text
值设置为“Hi”,我希望按钮立即显示为“Hi”,但实际上它一开始是空的。虽然它的开头为空,但当我单击按钮时,它会从以下位置切换:

  • 空白-->高

  • 您好-->您好

  • 您好-->您好(等等)

有人能告诉我我做错了什么,为什么我的默认按钮
text
值和
textvariable

我找到的最接近答案是:,但这是关于条目构造函数的,它似乎没有将
text
作为参数


如果我错过了这个问题的答案,我很抱歉,但我没有看到任何地方列出任何答案。

您没有为
StringVar设置默认值

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

tvar = tk.StringVar(value="Hi")

def swaptext():
    if tvar.get() == 'Hi':
        tvar.set('There')
    else:
        tvar.set('Hi')

my_button = ttk.Button(root, textvariable=tvar, command=swaptext)
my_button.pack()

root.mainloop()

您没有为
StringVar
设置默认值

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

tvar = tk.StringVar(value="Hi")

def swaptext():
    if tvar.get() == 'Hi':
        tvar.set('There')
    else:
        tvar.set('Hi')

my_button = ttk.Button(root, textvariable=tvar, command=swaptext)
my_button.pack()

root.mainloop()

天啊!这么简单的解决办法。这对我来说是新的,我应该查阅
StringVar()
的文档,我衷心感谢您的帮助,希望这本书能详细说明!谢谢谢谢谢谢!!天啊!这么简单的解决办法。这对我来说是新的,我应该查阅
StringVar()
的文档,我衷心感谢您的帮助,希望这本书能详细说明!谢谢谢谢谢谢!!