【问题标题】:Increase tkSimpleDialog window size增加 tkSimpleDialog 窗口大小
【发布时间】:2016-01-29 18:49:58
【问题描述】:

如何增加或定义 tkSimpleDialog 对话框的窗口大小?

import Tkinter, tkSimpleDialog
root = Tkinter.Tk()
root.withdraw()
test = tkSimpleDialog.askstring("testing", "Enter your search string text")
print test

【问题讨论】:

    标签: python python-2.7 tkinter tkinter-canvas


    【解决方案1】:

    使第二个参数尽可能大:

    import Tkinter, tkSimpleDialog
    root = Tkinter.Tk()
    root.withdraw()
    test = tkSimpleDialog.askstring("testing", "Enter your search string text in the space provided")
    print test
    

    【讨论】:

    • 注意:您可以为此使用空格,例如rPadChars = 50 * " " 然后只是 prompt + rPadChars
    【解决方案2】:

    起始于:http://effbot.org/tkinterbook/tkinter-dialog-windows.htm 我做了以下事情:

    import Tkinter as tk, tkSimpleDialog
    
    class MyDialog(tkSimpleDialog.Dialog):
        def body(self, master):
            self.geometry("800x600")
            tk.Label(master, text="Enter your search string text:").grid(row=0)
    
            self.e1 = tk.Entry(master)
            self.e1.grid(row=0, column=1)
            return self.e1 # initial focus
    
        def apply(self):
            first = self.e1.get()
            self.result = first
    
    
    root = tk.Tk()
    root.withdraw()
    test = MyDialog(root, "testing")
    print test.result
    

    如果您想要自定义几何图形和标签的文本,您可能需要覆盖 __init__(链接中给出的版本应该是一个很好的起点)。

    【讨论】:

      【解决方案3】:

      如果您想要更宽的框,您可以从源代码中使按钮更宽或在您的代码中覆盖它:

      def buttonbox(self):
          '''add standard button box.
      
          override if you do not want the standard buttons
          '''
      
          box = Frame(self)
      
          w = Button(box, text="OK", width=100, command=self.ok, default=ACTIVE)
          w.pack(side=LEFT, padx=5, pady=5)
          w = Button(box, text="Cancel", width=100, command=self.cancel)
          w.pack(side=LEFT, padx=5, pady=5)
      
          self.bind("<Return>", self.ok)
          self.bind("<Escape>", self.cancel)
      
          box.pack()
      

      【讨论】:

        【解决方案4】:

        tkSimpleDialog 不允许你改变它的几何形状

        仅在原地使用 Tk()

        这里有一个例子,你会看到两个窗口之间的区别

        import Tkinter, tkSimpleDialog
        
        root = Tkinter.Tk()
        root.geometry('240x850+200+100')
        #root.withdraw()
        test = tkSimpleDialog.askstring("testing", "Enter your search string text")
        root.mainloop()
        print test
        

        【讨论】:

          猜你喜欢
          • 2013-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-27
          • 1970-01-01
          • 2018-09-17
          相关资源
          最近更新 更多