16

我正在尝试在我的 UI 上添加一个“打开文件”文件选项卡。工作正常,但---------选项卡顶部显示一条线,我想将其删除。我不知道为什么会出现该行,并且在代码上找不到该行。

在此处输入图像描述

这是我的代码:

# -*- coding: utf-8 -*-
from Tkinter import *
import Image
import ImageTk
import tkFileDialog

class Planificador(Frame):
    def __init__(self,master):
        Frame.__init__(self, master)
        self.master = master
        self.initUI()

    def initUI(self):
        self.master.title("test")

        menubar = Menu(self.master, tearoff=0)
        self.master.config(menu=menubar)

        fileMenu = Menu(menubar)
        fileMenu.add_command(label="Open config file", command=self.onOpen)
        menubar.add_cascade(label="File", menu=fileMenu)

        fileMenu.add_separator()
        fileMenu.add_command(label="Exit", command=root.quit)

        self.txt = Text(self)
        self.txt.pack(fill=BOTH, expand=1)

    def onOpen(self):
        ftypes = [('Python files', '*.py'), ('All files', '*')]
        dlg = tkFileDialog.Open(self, filetypes = ftypes)
        fl = dlg.show()

        if fl != '':
            text = self.readFile(fl)
            self.txt.insert(END, text)

    def readFile(self, filename):
        f = open(filename, "r")
        text = f.read()
        return text

# Main
if __name__ == "__main__":
    # create interfacE
    root = Tk()
    aplicacion = Planificador(root)
    root.mainloop()

我想知道在哪里可以-------从代码中删除它。
提前致谢

4

3 回答 3

28

tearoff选项设置fileMenuFalse(或0

fileMenu = Menu(menubar, tearoff=False)
于 2013-07-29T09:44:23.557 回答
7

删除虚线的最佳方法是在开始创建任何菜单之前使用将选项设置为的option_add方法。在这里,您可以像这样在您的方法中执行此操作:*tearOffrootFalseinitUI

def initUI(self):
     self.master.title("test")
     self.master.option_add('*tearOff', False)

这将删除您将创建的每个菜单的虚线,因此在您创建菜单时无需设置tearoff=False

于 2016-02-23T08:50:16.677 回答
1

只需在之前添加此行root.mainloop():

root.option_add('*tearOff',FALSE)

它对我有用,我使用的是 Python 3.7.0

于 2018-11-19T16:56:58.800 回答