Python TkInter Настройка ввода текста из внешней функции - PullRequest
0 голосов
/ 08 октября 2019

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

Внешний модуль должен уметь читать данные виджета и манипулировать ими.

Так, например:

У меня есть скрипт, у которого есть база графического интерфейса, и когда он запускается, открывает его.

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

Основной скрипт GUI должен иметь возможность вызывать эти модули / функции, и они должны иметь возможность редактировать виджеты.

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

Основной скрипт GUI

import os, sys, ttk, pyodbc

from Tkinter import *
import Utils.Common as Common

class GUI:
    def __init__(self, *args):
        self.style = ttk.Style()
        font = "TkDefaultFont"

        root.title(uiTitle)
        root.iconbitmap(uiIcon)
        root.geometry(uiGeometry)

        self.connectBtn = ttk.Button(root, width=65)
        self.connectBtn.configure(text="Connect", command=Common.connectCleardox)
        self.connectBtn.grid(row=0, columnspan=4)

        self.exampleEnt = Entry(root, width=30)
        self.exampleEnt.grid(row=1, columnspan=4)

if __name__ == '__main__':
    root = Tk()
    GUI(root)
    root.mainloop()

Utils / Common.py

import tkMessageBox
from Tkinter import *

sys.path.insert(0, r'\\cd3\IT\Python\#PythonLibraries\Modules')
from CommonDB import Database

def connectCleardox():
    try:
        cleardoxConnection = Database.ConnectDatabase(Database(r"\\cd3\IT\Python\#PythonLibraries\ConfigFiles\Cleardox\Cleardox ConfigFile.json"))
        exampleEnt.insert(0, 'Success') #The widget from the GUI
    except Exception as e:
        tkMessageBox.showerror('uiTitle', "Database connection failed.\n\n%s" % (e))
        exampleEnt.insert(0, 'Fail') #The widget from the GUI
        return

Пожалуйста, дайте мне знать, если я слишком расплывчат или не даю достаточно описания.

Спасибо всем за ваше время.

Дилан.

...