tkinter弹出对话框在Python3.5中运行正常,但在pyinstaller版本中运行不正常

2024-09-27 23:23:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个帮助弹出对话框,在安装了python3.5.x的Linux和Windows中运行良好,但在pyinstaller构建之后,应用程序的其余部分运行良好,但该弹出窗口只是一个空窗体,没有它的所有五个小部件。我看不出代码有什么问题,我试图一次删除一个小部件,看看它们是否有问题,但同样的结果在构建之前工作,构建之后失败

from tkinter import *
from tkinter import ttk

from tkinterhtml import TkinterHtml as tkhtml


class HelpSystem(Toplevel):
    def __init__(self, parent, dlgTitle='Help', helpfile='help.db',
                 Manuals=None, showtopic=None):
        Toplevel.__init__(self, parent)
        self.transient(parent)
        self.parent = parent
        self.title(dlgTitle)
        self.con = sqlite3.connect(helpfile)
        self.cur = self.con.cursor()
        self.helpfile = helpfile
        self.Manuals = Manuals
        self.showtopic = showtopic
        self.searchresults = []
        self.searchindex = -1
        self.search_width = 67
        self.tree_height = 19
        body = Frame(self)
        self.initial_focus = self.Dialog_Builder(body)
        body.pack()
        self.grab_set()
        if not self.initial_focus:
            self.initial_focus = self
        self.protocol("WM_DELETE_WINDOW", self.exitme)
        self.initial_focus.focus_set()
        self.wait_window(self)

    def Dialog_Builder(self, mybody):
        self.sbox = Entry(mybody, width=self.search_width,
                          font=('Helvetica', 15))
        self.sbuts = Button(mybody, text='Search',
                            command=lambda: self.btnClick('s'))
        self.sbutn = Button(mybody, text='Next',
                            command=lambda: self.btnClick('n'))
        ff = self._font_details('Helvetica', 15)
        self.toc = ttk.Treeview(mybody, show='tree', height=self.tree_height,
                                selectmode=BROWSE)
        self.toc.bind('<ButtonRelease-1>', self._clicktopic)
        self.style = ttk.Style()
        self.style.configure('Treeview', font=("Helvetica", 15))
        self.style.configure('Treeview', rowheight=ff[1])
        self.toc.column('#0', width=(ff[0] * 20))
        self.vwr = tkhtml(mybody, height=ff[1] * self.tree_height)
        self.sbox.grid(column=0, row=0, columnspan=8, rowspan=1, padx=5,
                       pady=5, sticky=W)
        self.sbuts.grid(column=8, row=0, columnspan=1, rowspan=1, padx=5,
                        pady=5, sticky=W)
        self.sbutn.grid(column=9, row=0, columnspan=1, rowspan=1, padx=5,
                        pady=5, sticky=W)
        self.toc.grid(column=0, row=1, columnspan=3, rowspan=1, padx=5, pady=5,
                      sticky=NW)
        self.vwr.grid(column=3, row=1, columnspan=7, rowspan=1, padx=5, pady=5,
                      sticky=NW)

Tags: selfcolumnwidthgridparentrowfocusheight

热门问题