如何从菜单UI中删除虚线?

时间:2013-07-29 09:41:39

标签: python tkinter

我正在尝试在我的用户界面上添加“打开文件”文件标签。工作正常,但是---------行显示在选项卡的顶部,我想将其删除。我不知道为什么那条线出现了,我在代码上找不到该行。

enter image description here

这是我的代码:

# -*- 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()

我想知道从代码中删除-------的位置。
提前致谢

3 个答案:

答案 0 :(得分:17)

tearoff的{​​{1}}选项设为fileMenu(或False

0

答案 1 :(得分:5)

删除虚线的最佳方法是使用option_add方法将*tearOff的{​​{1}}选项设置为root之前你开始创建任何菜单。在这里,您可以使用False方法执行此操作:

initUI

这将删除您将创建的每个菜单的虚线,因此无需在创建菜单时随时设置def initUI(self): self.master.title("test") self.master.option_add('*tearOff', False)

答案 2 :(得分:1)

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

root.option_add('*tearOff',FALSE)

对我有用 我正在使用Python 3.7.0