如何在 python 3.x tkinter 中保存文本框(字符串和整数)

Posted

技术标签:

【中文标题】如何在 python 3.x tkinter 中保存文本框(字符串和整数)【英文标题】:How to save text form a textbox (String and Int) in python 3.x tkinter 【发布时间】:2015-01-09 06:07:12 【问题描述】:

我正在尝试从 6 个 texbox 中保存一些名称和值,其中 2 个是字符串,4 个是整数,在 .txt 或 .doc 中,但它不起作用

我在 windows 8.1 中使用 python 3.4,有人可以帮助我吗,我无法在 python 3.4 中找到任何信息或示例来保存我在这 6 个 texbox 中编写的任何内容 我有一个按钮可以调用函数 mSave

我有以下代码要保存但不工作

def mSave():
    filename = asksaveasfilename(defaultextension='.txt',
                                 filetypes=(('Text files', '*.txt'),
                                            ('Python files', '*.py *.pyw'),
                                            ('All files', '*.*')))
  if filename:
     with open(filename, 'w') as stream:
          stream.write(self.gettext())

Python 说

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\idlelib\run.py", line 121, in main
    seq, request = rpc.request_queue.get(block=True, timeout=0.05)
  File "C:\Python34\lib\queue.py", line 175, in get
    raise Empty
queue.Empty

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
    return self.func(*args)
  File "C:\\ManualTab.py", line 608, in mSave
    filename = asksaveasfilename(defaultextension='.txt',
NameError: name 'asksaveasfilename' is not defined

请帮忙

【问题讨论】:

能否提供完整的代码示例。 对于导入问题:***.com/a/673309/3714930 “不成功”是什么意思?程序会崩溃吗?它会写入错误的数据吗?你有错误吗?此外,除了 import 语句之外,几乎所有版本的 python 都可以使用相同的代码将数据保存到文件中。 我有错误,我将代码放在问题中 错误告诉你问题:你正在调用一个你没有定义也没有导入的函数。 【参考方案1】:

我找到了答案

首先,对于python 3.4,我必须使用

from tkinter import *

但这并不意味着它将全部导入,所以我必须调用

from tkinter import filedialog
from tkinter.filedialog import asksaveasfilename

如果有人需要它与open相同

from tkinter.filedialog import askopenfilename

现在我终于可以调用我的函数了

def mSave():
  filename = asksaveasfilename(defaultextension='.txt',filetypes = (('Text files', '*.txt'),('Python files', '*.py *.pyw'),('All files', '*.*')))
  if filename is None:
    return
  file = open (filename, mode = 'w')
  name1 = TubeLenghtVal_1.get()          
  name2 = TubeLenghtVal_2.get()

  # or whatever you assign the name of the variable, for me is TubeLenghtVal_2 = StringVar() and for integer I have Vol_Val = IntVar()
  all = name1 + " , " + name + " , " + (str(Vol_Val))
  file.write(all)
  file.close()

仅此而已

【讨论】:

以上是关于如何在 python 3.x tkinter 中保存文本框(字符串和整数)的主要内容,如果未能解决你的问题,请参考以下文章

python 3.x tkinter,将来自opencv cv2的帧集成到tkinter窗口中

Python 3.x - Python Tkinter

每当有来自串行端口 python 3.x 的新数据时,从串行数据更新 tkinter 标签

python GUI(Tkinter)

如何使可点击的按钮运行子程序? Python 3.X.X

如何使用 tkinter 按钮在 python 中写入文件?