Задать вопрос
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() # Запуск окна

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

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

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

Похожие вопросы