Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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 如何使用Tkinter在多行字符串中分配和调用多个变量_Python_Tkinter - Fatal编程技术网

Python 如何使用Tkinter在多行字符串中分配和调用多个变量

Python 如何使用Tkinter在多行字符串中分配和调用多个变量,python,tkinter,Python,Tkinter,我正在学习编码,刚刚开始学习python。我构建了我的第一个“我自己”的应用程序,我计划在发送DHCP请求时使用它来自动化工作中的一些键入。我在调用多行字符串中设置为变量的多个条目时遇到问题。我尝试在条目()中使用StringVar()和textvariable。如有任何建议,将不胜感激。我相信问题在于str1变量,但我缺乏经验和理解,这让我感到困惑。结果返回的变量是PY_VAR0,这意味着我把事情搞砸了,程序不知道该去哪里看(我想) 代码中有两个主要问题: StringVar的用法 构建st

我正在学习编码,刚刚开始学习python。我构建了我的第一个“我自己”的应用程序,我计划在发送DHCP请求时使用它来自动化工作中的一些键入。我在调用多行字符串中设置为变量的多个条目时遇到问题。我尝试在条目()中使用StringVar()和textvariable。如有任何建议,将不胜感激。我相信问题在于str1变量,但我缺乏经验和理解,这让我感到困惑。结果返回的变量是PY_VAR0,这意味着我把事情搞砸了,程序不知道该去哪里看(我想)


代码中有两个主要问题:

  • StringVar的用法
  • 构建str1的时间
正如他在文章中提到的,Tkinter.StringVar是通过其
get()
-方法访问的。因此,您的字符串构建应该如下所示:


str1= """host %s
         {
             hardware ethernet %s ;
             fixed-address %s ;
             option host-name %s ;
         }"""%(pc_name.get(), mac_add.get(), ip_add.get(), pc_name.get())
此分配应在dhcp回调内完成。为什么?因为用户按下按钮时,而不是创建元素时,您需要读取数据


#Definitions
def dhcp():
    str1= """host %s
             {
                 hardware ethernet %s ;
                 fixed-address %s ;
                 option host-name %s ;
             }"""%(pc_name.get(), mac_add.get(), ip_add.get(), pc_name.get())
    print str1

我不明白。。。你在用多行字符串做什么?如果您想在
StringVar
中获取值,您需要使用
pc\u name.get()
等,但在初始化后立即执行此操作并没有多大帮助。我需要将用户输入的entry1中的pc\u name字符串插入到str1中第一个和最后一个%s的dhcp中。好的。。。因此,去掉
%(pc\u name,mac\u add,ip\u add,pc\u name)
并将带有格式标记的字符串存储在适当的位置,然后在需要获得格式化版本时,执行
formatted\u str=str1%(pc\u name.get(),mac\u add.get(),ip\u add.get(),pc\u name.get())
文字无法表达我多么感谢您的帮助和知识。我仍在学习事情是如何运作的。它就像一个符咒。我是否可以使用像tkMessageBox这样的输出,但我希望能够复制输出文本。

#Definitions
def dhcp():
    str1= """host %s
             {
                 hardware ethernet %s ;
                 fixed-address %s ;
                 option host-name %s ;
             }"""%(pc_name.get(), mac_add.get(), ip_add.get(), pc_name.get())
    print str1