Hackerman1
@Hackerman1
17 лет, плохое зрение.

Как вставить entry в код на ткинтере?

Мне нужно добавить поле для ввода. Я разобрался как указать часть параметров для Entry, но как вывести на экран "Наши полномочия тут всё, окончены." Код приложил.
spoiler

from DataBase_0_1_5 import *
import pyttsx3
import os
import sys
import speech_recognition as sr
import time
import datetime
from fuzzywuzzy import fuzz
import tkinter as tk
from PIL import ImageTk, Image
import webbrowser as wb


#============================================================== Функции

def openCalc(): # Калькулятор
    cal = True
    while cal:
        speak('скажите математический пример')
        n = hear().split(' ') # Разбиваем нашу речь на слоги, получая список

        one, two, symbol = int(example_list[0]), int(example_list[2]), example_list[1] # Распределяем все по переменным

        if symbol == '+' or symbol == 'плюс':
            speak(str(one + two))
        elif symbol == '-' or symbol == 'минус':
            speak(str(one - two))
        elif symbol == 'x' or symbol == 'умножить':
            speak(str(one * two))
        elif symbol == '/' or symbol == 'разделить':
            speak(str(one / two))
        else:
            speak("Это не похоже на пример")

        print("повторить?") # Повторить?
        reset = hear()
        if reset == "да":
            cal = True
        else:
            speak("выход из программы")
            print("==============================")
            break

def speak(what): # Сказать
    print(what)
    x = pyttsx3.init()
    x.say(what)
    x.runAndWait()
    x.stop

def hear(): # Записать
    global error
    r = sr.Recognizer()
    try:
        with sr.Microphone() as source:  # Запись аудио
            r.adjust_for_ambient_noise(source, duration=0.5)  # шумоподавление
            print("Скажите что-нибудь: ")
            audio = r.listen(source)
        text = r.recognize_google(audio, language="ru-RU") # Преобразование речи в текст
        error = 0 # Возвращает 0 в ложные запросы
        return text.lower()  # Возврат

    except:
        print("[log]: Речь не распознана, или нет доступа к сети")
                              # Авто - завершение работы
        if error != 3:
            error += 1
            return hear()
        else:
            speak("Ладно, поговорю сама с собой. Грустный смайлик")
            global play
            play = False

def debug_Mode(): # Режим отладки
    speak("Введи ключ доступа")
    cod = input("--> ")
    if cod == "2004":
        speak("Запускаю режим отладки")
        print("=" * 40)
        mod = True
    else:
        speak("Ошибка доступа")

    while mod == True:
        zapros = hear()
        print("[log]:" + zapros)
        if zapros == "выход":
            mod = False
            speak("закрываю режим отладки")
            print("=" * 40)

def Search(zapros): # Функция поиска
    speak("Открываю в поиске: " + zapros)
    url = "https://www.google.ru/search?q=" + zapros
    wb.open_new(url)
    play = False

def main(): # Главная функция

    speak("Здравствуй, я голосовой ассистент Юля. Версия 0.1.5")

    while True: # Главный цикл

        request = hear() # Прослушмваем

        result = [key for key, val in database.items() if request in val]  # Проверяем наличие нашего запроса в базе, помещаем ответ в переменную
        result = "".join(result)  # Преобразуем список в строку

        if result:

            if result == "Открываю калькулятор":
                openCalc()

            elif result == "Режим отладки":
                debug_Mode()

            elif result == exit_:
                speak(result)
                os.system("TASKKILL /F /IM python.exe")

            elif result == Real_Need:
                speak(result)

            elif result == Your_History:
                speak(result)

            else:
                speak(result)
        else:
            speak("Вы сказали: " + request)
            speak("Я не могу найти у себя ответ. Желаете найти ответ в браузере?")
            a = hear()

            if a == "да" or a == "конечно" or a == "найди":
                Search(request)
            else:
                speak("Окей, продолжим")
                continue

def _from_rgb(rgb): # Для работы TKinter
    return "#%02x%02x%02x" % rgb

#=========================================================== Ход работы

error = 0
root = tk.Tk() # Задаем новое окно

root.geometry('400x500') # Определяем размеры
root.resizable(width=False, height=False) # Закрепляем размеры
root.title("Голосовой ассистент Юля")

#======= Непонятный код ======

image = Image.open("F:/Programming/Assistant/imgonline-com-ua-Resize-MwPy3NBNduq.png")
width = 500
ratio = (width / float(image.size[0]))
height = int((float(image.size[1]) * float(ratio)))
image = image.resize((width, height), Image.ANTIALIAS)
image = ImageTk.PhotoImage(image)
canvas = tk.Canvas(root, width=width, height=height)
canvas.pack(side="top", fill="both", expand="no")
canvas.create_image(0, 0, anchor="nw", image=image)

#==============================

canvas.create_text(200, 25, text="Юлия 0.1.5", fill="Purple", font='Helvetica 30') # Текст
canvas.create_text(200, 50, text="Голосовой помощник, созданный для общения", fill="Purple", font='Times 13') # Текст

button = tk.Button(root, text='Запуск', font="Times 30", bg=_from_rgb((189, 223, 249))) # Настройки для кнопки
canvas.create_window((125, 400), anchor="nw", window=button) # Вывод кнопки.
button.config(command=lambda: main()) # Вызов кнопкой функции start()
Program = tk.Entry(root, width=10)
Program.pack(10, 65) <-- ПРОБЛЕМНОЕ МЕСТО!!!! Я ХЗ КАК ВЫВЕСТИ ЭТО ПОЛЕ НА ЭКРАН.


root = tk.mainloop() # Запуск окна

#==========================================================

  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
yupiter7575
@yupiter7575
Python программист
Я так понял выходит ошибка, да? Ваша проблема в том что вы для canvas используете метод расположения pack, а для entry вы используете grid. Можно использовать только один (лучше grid), либо использовать фреймы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы