Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.05.2020
Сообщений: 14
1
Tkinter

Подключить функцию к кнопке для вывода

21.12.2020, 17:49. Показов 661. Ответов 5

Имеется две функции и eng и rus, функцию rus требуется подключить к кнопке в yes, а eng подключить к no.
Нужно сделать так что бы при нажатии кнопки действие выводилась в label, то есть если мы вводим слова в entry при нажатии кнопки перевод слов выводится в label.

Вот функции:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def eng():
    eng_words = {v: k for k,v in words.items()}
    find_word = input('Введите предложение на русском: ' '').split()
    res = ''
    for w in find_word :
        if w in eng_words :
            res = res + eng_words[w] + ' '
        else:
            print('No such key')
            return
    print(' '.join(find_word), ' -> ', res)
 
def rus():
    key = input('Введите предложение на английском: ' '').split()
    res = ''
    for w in key :
        if w in words :
            res = res + words[w] + ' '
        else:
            print('Перевод не найден')
            return
    print(' '.join(key), ' -> ', res)
а вот сам код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from words import words
from tkinter import * 
 
root = Tk()
root.title('Переводчик')
root.geometry('500x200')
root['bg'] = ('#1ca1c9')
root.resizable(False,False)
 
def yes():
    win = Tk()
    win.geometry('500x200') 
    win['bg'] = ('#1ca1c9' )
    win.title('Переводчик') 
    labelExample = Label(win, text = " Введите предложение на английском: ",
                        font=('Times New Roman', 14,'bold'), bg = '#18f2b1')
    labelExample.place(x = 97, y = 10, width = 350, height = 40)
    ent1 = Entry(win, textvariable = rus, width = 45, bd = 3)
    ent1.place(x = 120, y = 50)
    buttonExample = Button(win, text = 'Перевести',
                           font=('Times New Roman', 12,'bold'), bg = '#18f2b1', command =  lambda: rus)
    buttonExample.place(x = 200, y = 80, width = 100, height = 30)
    lbl = Label(win, text = 'Перевод', font=('Times New Roman', 12,'bold'), bg = '#1ca1c9')
    lbl.place(x = 215, y = 115)
    win.mainloop()
 
def no():
    win = Tk()
    win.geometry('500x200') 
    win['bg'] = ('#1ca1c9' )
    win.title('Переводчик') 
    labelExample = Label(win, text = " Введите предложение на русском: ",
                        font=('Times New Roman', 14,'bold'), bg = '#18f2b1')
    labelExample.place(x = 110, y = 10, width = 305, height = 40)
    ent3 = Entry(win, textvariable = words, width = 45, bd = 3)
    ent3.place(x = 120, y = 50)
    buttonExample = Button(win, text = 'Перевести',
                           font=('Times New Roman', 12,'bold'), bg = '#18f2b1', command = eng)
    buttonExample.place(x = 200, y = 80, width = 100, height = 30)
    lbl = Label(win, text = 'Перевод', font=('Times New Roman', 12,'bold'), bg = '#1ca1c9')
    lbl.place(x = 215, y = 115)
    win.mainloop()
 
lbl1 = Label(root, text = 'Перевести на русский?',
                font=('Times New Roman', 14,'bold'), bg = '#18f2b1')
 
btn1 = Button(root,text=' Да ', 
            font=('Times New Roman', 14,'bold'),
            bg = '#18f2b1', command = yes)
btn2 = Button(root,text=' Нет ', 
            font=('Times New Roman', 14,'bold'),
            bg = '#18f2b1', command = no)
 
lbl1.place(x = 110, y = 10, width = 300, height = 40)
btn1.place(x = 150, y = 60, width = 50, height = 40)
btn2.place(x = 300, y = 60, width = 50, height = 40)
root.mainloop()
Знаю что нужно подключать через command, но тогда функция не выполняется. Помогите подключить правильно, пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2020, 17:49
Ответы с готовыми решениями:

Написать функцию Faktorial и программу, использующую эту функцию для вывода таблицы факториалов
Написать функцию Faktorial и программу, использующую эту функцию для вывода таблицы факториалов. ...

Составить функцию Faktorial и программу, использующую эту функцию для вывода таблицы факториалов
17. Составить функцию Faktorial и программу, использующую эту функцию для вывода таблицы...

Реализовать и протестировать функцию перегрузки операции потокового вывода как дружественную функцию для класса Matrix
Добавить в определение класса Matrix, реализовать и протестировать функцию перегрузки операции...

Для вывода матрицы на экран использовать рекурсивную функцию вывода одной строки матрицы
Рекурсивная функция в С++. срочно! ДЛЯ вывода матрицы на экран построчно использовать...

5
2479 / 1792 / 749
Регистрация: 21.03.2016
Сообщений: 4,728
21.12.2020, 20:37 2
Python
1
command =  rus
но функции должны быть в основном коде или импортированы из другого модуля
Python
1
from имя_файла import rus
. чего у вас нет.
0
0 / 0 / 0
Регистрация: 17.05.2020
Сообщений: 14
21.12.2020, 21:11  [ТС] 3
Проблема как раз таки заключается в этом, функции находятся в основном коде, просто прописала их для наглядности отдельно.
При нажатии на кнопку ничего не происходит, а нужно чтобы выводил перевод слов в lable, но вот как именно прописать я не совсем понимаю.
Уже и через lbl.configure пробовала, но всё равно не получается. Возможно нужно поменять код, но вот как это сделать я тоже не понимаю.
0
345 / 238 / 116
Регистрация: 02.05.2020
Сообщений: 698
23.12.2020, 10:35 4
Цитата Сообщение от seventeen_night Посмотреть сообщение
При нажатии на кнопку ничего не происходит
уточните, про какую конкретно кнопку идёт речь
0
0 / 0 / 0
Регистрация: 17.05.2020
Сообщений: 14
23.12.2020, 10:41  [ТС] 5
buttonExample в функции yes и buttonExample в функции no
при нажатии на кнопку в yes должен выводится перевод с английского на русский, то есть нужно подключить через command функцию rus
а при нажатии на кнопку в no должен выводится перевод с русского на английский, то есть подключить eng

но когда я подключаю ничего не выводится
0
345 / 238 / 116
Регистрация: 02.05.2020
Сообщений: 698
23.12.2020, 10:56 6
ну в первом случае
Python
1
command =  lambda: rus
замените на
Python
1
command =  rus
Добавлено через 3 минуты
дальше по коду rus будет ожидать текст из консоли

Добавлено через 1 минуту
логичнее былобы input заменить на чтение данных из Entry
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2020, 10:56

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Написать функцию "Факториал" и программу, использующую эту функцию для вывода таблицы факториалов
Написать функцию "Факториал" и программу, использующую эту функцию для вывода таблицы факториалов....

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

переделать функцию для вывода на форму
как осуществить вывод списка в listbox? intlist->print(); class Spisok { private: list<T> *...

Создать функцию для вывода двумерного массива
Здравствуйте. Задание- создать функцию для вывода двумерного массива. #include<iostream>...

Написать функцию для ввода и вывода массива
Дан двумерный динамический массив. Помогите сделать функцию для ввода и вывода массива ...

Написать отдельную функцию для вывода матрицы
Я новичок помогите разобраться. #include<iostream> #include<windows.h> #include<ctime> using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.