Как вызвать функции с помощью tkinter из существующего скрипта - PullRequest
0 голосов
/ 28 мая 2019

Название не очень точное, я думаю

Вот начало моего сценария

rom colorama import init, Fore, Back, Style
import commands
import config
import sys

# Coloroma autoreset
init(autoreset=True)


while True:
    # Database Check.
    while True:
        db = input("Check for new databases? Y/N: ")
        if db.lower() == 'y':
            commands.db_download()
            break
        elif db.lower() == 'n':
            break
        else:
            continue

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

И вот начало того, что я пытался сделать с помощью tkinter

import tkinter
import questions


top = tkinter.Tk()

B = tkinter.Button(top, text ="Lancer", command = db)

top.mainloop()

Как вы видите слева, у меня есть "вопросы об импорте", но, когда я запускаю файл tkinter, он автоматически запускает вопросы без учета моего кода "B".

Как я могу добавить графический интерфейс к каждой команде моих вопросов.py?

1 Ответ

1 голос
/ 28 мая 2019

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

Например:

def coloroma_autoreset():
    init(autoreset=True)


    while True:
        # Database Check.
        while True:
            db = input("Check for new databases? Y/N: ")
            if db.lower() == 'y':
                commands.db_download()
                break
            elif db.lower() == 'n':
                break
            else:
                continue

Если бы этот код был в файле "questions.py", то вы могли бы import questions и запустить эту функцию следующим образом:

import questions

questions.coloroma_autoreset() # this would run the code

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

Вот так:

import tkinter
import questions


top = tkinter.Tk()

B = tkinter.Button(top, text ="Lancer", command = db)
B.pack()

top.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...