Как изменить виджет tk по нажатию кнопки в случае, когда код и функции находятся в двух разных файлах - PullRequest
0 голосов
/ 16 июня 2019

Я новичок в программировании на Python. У меня есть задание, чтобы закончить с программой на Python. Я застрял с проблемой. Я нашел Page GUI Builder и использовал для разработки GUI. как вы уже знаете, он создает два файла. один содержит детали GUI, а другой файл поддержки содержит функции.

Теперь я хочу изменить статус ТК Entry нажатием кнопки. Я могу сделать это, написав функцию в том же файле GUI. но я хочу сделать это, написав функцию в файле поддержки. Я сделал простой пример, чтобы объяснить мою проблему здесь. это не оригинальный файл.

Это Пример4.py

      import sys

  try:
      import Tkinter as tk
  except ImportError:
      import tkinter as tk

  try:
      import ttk
      py3 = False
  except ImportError:
      import tkinter.ttk as ttk
      py3 = True

  import Example4_support

  def vp_start_gui():
      '''Starting point when module is the main routine.'''
      global val, w, root
      root = tk.Tk()
      Example4_support.set_Tk_var()
      top = Toplevel1 (root)
      Example4_support.init(root, top)
      root.mainloop()

  w = None
  def create_Toplevel1(root, *args, **kwargs):
      '''Starting point when module is imported by another program.'''
      global w, w_win, rt
      rt = root
      w = tk.Toplevel (root)
      Example4_support.set_Tk_var()
      top = Toplevel1 (w)
      Example4_support.init(w, top, *args, **kwargs)
      return (w, top)

  def destroy_Toplevel1():
      global w
      w.destroy()
      w = None

  class Toplevel1:
      def __init__(self, top=None):
          '''This class configures and populates the toplevel window.
             top is the toplevel containing window.'''
          _bgcolor = '#d9d9d9'  # X11 color: 'gray85'
          _fgcolor = '#000000'  # X11 color: 'black'
          _compcolor = '#d9d9d9' # X11 color: 'gray85'
          _ana1color = '#d9d9d9' # X11 color: 'gray85'
          _ana2color = '#ececec' # Closest X11 color: 'gray92'
          font10 = "-family {Courier New} -size 10 -weight normal -slant"  \
              " roman -underline 0 -overstrike 0"

          top.geometry("600x450+316+154")
          top.title("New Toplevel")
          top.configure(background="#d9d9d9")
          top.configure(highlightbackground="#d9d9d9")
          top.configure(highlightcolor="black")

          self.Frame1 = tk.Frame(top)
          self.Frame1.place(relx=0.05, rely=0.089, relheight=0.784, relwidth=0.922)

          self.Frame1.configure(relief='groove')
          self.Frame1.configure(borderwidth="2")
          self.Frame1.configure(relief="groove")
          self.Frame1.configure(background="#d9d9d9")
          self.Frame1.configure(highlightbackground="#d9d9d9")
          self.Frame1.configure(highlightcolor="black")
          self.Frame1.configure(width=435)

          self.Entry1 = tk.Entry(self.Frame1)
          self.Entry1.place(relx=0.253, rely=0.085,height=20, relwidth=0.297)
          self.Entry1.configure(background="white")
          self.Entry1.configure(disabledforeground="#a3a3a3")
          self.Entry1.configure(font=font10)
          self.Entry1.configure(foreground="#000000")
          self.Entry1.configure(highlightbackground="#d9d9d9")
          self.Entry1.configure(highlightcolor="black")
          self.Entry1.configure(insertbackground="black")
          self.Entry1.configure(selectbackground="#c4c4c4")
          self.Entry1.configure(selectforeground="black")
          self.Entry1.configure(state='readonly')
          self.Entry1.configure(textvariable=Example4_support.en1)

          self.Button1 = tk.Button(self.Frame1)
          self.Button1.place(relx=0.344, rely=0.255, height=24, width=47)
          self.Button1.configure(activebackground="#ececec")
          self.Button1.configure(activeforeground="#000000")
          self.Button1.configure(background="#d9d9d9")
          self.Button1.configure(command=Example4_support.btn_clicked)
          self.Button1.configure(disabledforeground="#a3a3a3")
          self.Button1.configure(foreground="#000000")
          self.Button1.configure(highlightbackground="#d9d9d9")
          self.Button1.configure(highlightcolor="black")
          self.Button1.configure(pady="0")
          self.Button1.configure(text='''Button''')

  if __name__ == '__main__':
      vp_start_gui()

Это Example4_support.py

import sys

try:
import Tkinter as tk
except ImportError:
    import tkinter as tk

try:
    import ttk
    py3 = False
except ImportError:
    import tkinter.ttk as ttk
    py3 = True

def set_Tk_var():
    global en1
    en1 = tk.StringVar()

def btn_clicked():


def init(top, gui, *args, **kwargs):
    global w, top_level, root
    w = gui
    top_level = top
    root = top

def destroy_window():
    # Function which closes the window.
    global top_level
    top_level.destroy()
    top_level = None

if __name__ == '__main__':
    import Example4
    Example4.vp_start_gui()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...