小编Ics*_*ilk的帖子

filedialog,tkinter和打开文件

我正在第一次为Python3中的程序编写Browse按钮.我一直在搜索互联网和这个网站,甚至是python标准库.

我找到了示例代码和对事物的非常肤浅的解释,但是我找不到任何解决我直接遇到的问题的东西,或者说是一个足够好的解释,所以我可以根据自己的需要自定义代码.

这是相关的片段:

Button(self, text = "Browse", command = self.load_file, width = 10)\
        .grid(row = 1, column = 0, sticky = W) .....


 def load_file(self):

    filename = filedialog.askopenfilename(filetypes = (("Template files", "*.tplate")
                                                         ,("HTML files", "*.html;*.htm")
                                                         ,("All files", "*.*") ))
    if filename: 
        try: 
            self.settings["template"].set(filename)
        except: 
            messagebox.showerror("Open Source File", "Failed to read file \n'%s'"%filename)
            return
Run Code Online (Sandbox Code Playgroud)

该方法是我在自己的自定义过程中发现的一些代码的混合体.好像我终于让它工作了(有点),虽然它不是我需要它的方式.

当我激活"浏览"按钮时出现此错误:NameError: global name 'filedialog' is not defined.

我一路上发现了类似的问题,但我已经介绍了所有解决方案.我进入了IDLE的'filedialog'帮助部分,但也没有从那里收集任何东西.

有人会介意提供一个细分和一点指导; 我的书都没有专门解决它,我已经检查了提供给其他人的所有解决方案 - 我输了.

python filedialog tkinter global-variables python-3.x

37
推荐指数
1
解决办法
13万
查看次数

if/elif mash up

这是我在这个网站上的第二个问题,他们都处理'if'语句没有按预期工作.我已经学习了大约3-4个月的Python,我记得在开始的时候我正在学习'for','if'和'而我记得'if'语句是三个中最简单的一个; 我开始意识到'如果'的陈述并不像我曾经想象的那样明确.

我正在编写一个转换器,可以在二进制,十进制和十六进制之间进行转换,而无需使用任何Python内置数学函数.我正在使用tkinter.

我将询问的问题是在选择"二进制"单选按钮的转换时处理的问题.低于3'转换''单选按钮是3'转换为'复选框.如果选中dec_bttn复选框,则以下代码用于从二进制转换为十进制;如果选中了hex_bttn复选框,则为十六进制:

def from_binary(self, dec_bttn, hex_bttn):
    """ Performs conversion from base2 to base10 and base16. """
    bits = '1010'               #actual code used -> self.input_str.get()
    exp =  len(bits) -1         #actual code used -> len(self.input_str.get()) - 1

    # operate on valid string
    # converts to decimal
    if self.dec_bttn:           
        dtot = 0
        while exp >= 1:
            for i in bits[:-1]:
                if i == "1":
                    dtot += 2**exp
                elif i == "0":
                    dtot = dtot                        
                exp -= 1

            if bits[-1] == "1": …
Run Code Online (Sandbox Code Playgroud)

python if-statement tkinter python-3.x

3
推荐指数
1
解决办法
258
查看次数

显示文件名,而不是文本小部件tkinter Python中的内容

我不知道为什么我还没能找到解决这个问题的好方法,这对我来说似乎非常基本......虽然不够基本,不能令人满意.密码学书中的章节项目Im阅读指示用您的首选语言编写一个简单的单字母密码......我选择了Python.

它从一个简单的tkinter应用程序开始.有些小工具,哈哈...呃.无论如何这里是相关的代码:

from tkinter import *
from tkinter.filedialog import askopenfilename
from tkinter.messagebox import showerror


class Application(Frame):
    def __init__(self, master):
        """ Initialize Frame. """
        super(Application, self).__init__(master)
        self.grid()
        self.create_widgets()

    def create_widgets(self):
        """ Set all program widgets. """
        # set all labels
        Label(self, text = "Plaintext File: ")\
            .grid(row=0, column=0, sticky=W)
        Label(self, text = "Ciphertext: ")\
            .grid(row=3, column=0, sticky=W)
        Label(self, text = "Offset: ")\
            .grid(row=2, column=0, sticky=W)

    # set buttons
    Button(self, text = "Browse", command=self.load_file, width=10)\
        .grid(row=1, column=0, sticky=W)

    # set entry field …
Run Code Online (Sandbox Code Playgroud)

python encryption tkinter python-3.x

2
推荐指数
1
解决办法
2275
查看次数

无法解决Python/sqlite程序中的神秘错误

我遇到了这个我无法解决的错误我在Python中使用tkinter接口编写一些代码来将数据从文本文件传输到sqlite.

首先,这是相关代码:

def submit_data(self):
    self.new_filename = self.file_entry.get()
    self.new_tablename = self.table_entry.get()
    self.new_fieldname = self.field_entry.get().split(',')

    #print(self.new_fieldname)
    self.create_new.destroy()

    from sqlite3 import dbapi2 as sqlite

    con = sqlite.connect(self.new_filename)    
    cur = con.cursor()
    cur.execute('CREATE TABLE ' + self.new_tablename + '(id INTEGER PRIMARY KEY)')
    for field in self.new_fieldname:
        cur.execute('ALTER TABLE ' + self.new_tablename + ' ADD ' + field)

    with open(self.filename, 'r', encoding='latin-1') as self.the_file:    
        status = True
        #_keynumber=1
        while status:
            _row = self._next_line()

            if _row:
                _entry_list = _row.split(',')
                # add space after text line comma for …
Run Code Online (Sandbox Code Playgroud)

python sqlite tkinter python-3.x

0
推荐指数
1
解决办法
828
查看次数