60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313

Выполнение функции по нажатию кнопки ENTER

29.04.2019, 09:42. Показов 17646. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Написал программу, которая позволяет просматривать курсы валют на конкретные даты. Но не могу понять как сделать что бы на кнопку "Show" можно было нажать клавишей ENTER.

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 from tkinter import*
import requests
import json
 
 
#[url]http://www.nbrb.by/API/ExRates/Currencies[/url][/{Cur_ID}]
#[url]http://www.nbrb.by/API/ExRates/Rates/145?onDate=год-месяц-число[/url]
urlUSD = 'http://www.nbrb.by/API/ExRates/Rates/145?onDate='
urlRUR = 'http://www.nbrb.by/API/ExRates/Rates/298?onDate=' 
 
def fetch_rate(currencyUrl, date):
    url = currencyUrl + date
    request = requests.get(url)
    rates = request.json()
    rate = rates['Cur_OfficialRate']
    return rate
 
 
def set_text_to(control, text):
    control.delete(0,END)
    control.insert(0,text)
    return
 
 
def showRateUSD():
    date = date_text.get()
    rate = fetch_rate(urlUSD, date)
    print(rate)
    set_text_to(entryUSD, rate)
 
 
def showRateRUR():
    date = date_text.get()
    rate = fetch_rate(urlRUR, date)
    print(rate)
    set_text_to(entryRUR, rate)
 
 
def showRates():
    showRateUSD()
    showRateRUR()
    
   
root = Tk()
root.title("Currencies")
root.background = 'black'
root.geometry('250x150+960+400')
root.resizable(False, False)
root['bg'] = "#0d92a6"
 
 
text1 = Label(root, text = 'YYYY-MM-DD', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
text1.pack(side=TOP)
 
textUSD = Label(root, text = 'USD', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
textUSD.place(x=40, y=60)
 
textRUR = Label(root, text = '100RUR', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
textRUR.place(x=150, y=60)
 
date_text = StringVar()
dateEntry = Entry(root, width=12, bg="#ebebeb", fg='#2c2c2c', textvariable=date_text)
dateEntry.pack(anchor="c")
 
 
entryUSD = Entry(root, bg="#ebebeb", fg='#2c2c2c')
entryUSD.pack(side=LEFT)
 
entryRUR = Entry(root, bg="#ebebeb", fg='#2c2c2c')
entryRUR.pack(side=LEFT)
 
u_get1 = Button(root,  width = '17',fg='#2c2c2c', text="Show", font='Follyfont 11', command=showRates)
u_get1.place(x=60, y=120)
 
 
 
 
root.mainloop()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.04.2019, 09:42
Ответы с готовыми решениями:

Выполнение скрипта по нажатию кнопки из админки
Доброго времени суток. Я только начал изучение django. Стоит задача запустить выполнение python скрипта из админки при нажатий кнопки...

Выполнение действия по нажатию кнопки Enter
Привет! Такой вопрос: есть код private void button1_Click(object sender, KeyEventArgs e) { if (Keys.Enter ==...

Выполнение действия по нажатию кнопки Enter
Форумчане, доброго вам времени суток! Столкнулся сейчас с такой вот проблемой: на форме у меня есть 2 текстбокса и две кнопки,...

11
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
29.04.2019, 17:36
Зачем нажимать на enter по кнопке? Проще по enter ту же функцию вызвать

Python
1
root.bind('<Return>', showRates)
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
29.04.2019, 17:53  [ТС]
Выбивает вот такую ошибку
Миниатюры
Выполнение функции по нажатию кнопки ENTER  
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
29.04.2019, 17:55
Лучший ответ Сообщение было отмечено Onet1me как решение

Решение

Можно создать функцию

Python
1
2
3
4
def showRatesReturn(e):
    showRates()
 
root.bind('<Return>', showRatesReturn)
1
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
29.04.2019, 18:11  [ТС]
Спасибо, все заработало!
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
30.05.2019, 12:07  [ТС]
У меня есть еще один вопрос. Как сделать что по двойному нажатию мыши информация из Entry "entryUSD" попадала в буфер обмена
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
from tkinter import*
import requests
import json
from datetime import datetime
 
#http://www.nbrb.by/API/ExRates/Currencies[/{Cur_ID}]
#http://www.nbrb.by/API/ExRates/Rates/145?onDate=год-месяц-число
urlUSD = 'http://www.nbrb.by/API/ExRates/Rates/145?onDate='
urlRUR = 'http://www.nbrb.by/API/ExRates/Rates/298?onDate=' 
 
def fetch_rate(currencyUrl, date):
    url = currencyUrl + date
    request = requests.get(url)
    rates = request.json()
    rate = rates['Cur_OfficialRate']
    return rate
 
 
def set_text_to(control, text):
    control.delete(0,END)
    control.insert(0,text)
    return
 
 
def showRateUSD():
    date_ch = date_text.get().replace('.', ',').split(',')
    date = str(datetime.strptime ('-'.join([date_ch[2], date_ch[1], date_ch[0]]), '%Y-%m-%d')).split()[0]
    rate = fetch_rate(urlUSD, date)
    set_text_to(entryUSD, rate)
 
 
 
 
def showRateRUR():
    date_ch = date_text.get().replace('.', ',').split(',')
    date = str(datetime.strptime ('-'.join([date_ch[2], date_ch[1], date_ch[0]]), '%Y-%m-%d')).split()[0]
    rate = fetch_rate(urlRUR, date)
    set_text_to(entryRUR, rate)
 
 
 
def showRates():
    showRateUSD()
    showRateRUR()
    
    
   
def showRatesReturn(e):
    showRates()
 
 
 
   
root = Tk()
root.title("Currencies")
#root.iconbitmap(r'C:\Windows\Masha.ico')
root.background = 'black'
root.geometry('250x150+960+400')
root.resizable(False, False)
root['bg'] = "#0d92a6"
#root.overrideredirect(1)
 
 
text1 = Label(root, text = 'DD.MM.YYYY', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
text1.pack(side=TOP)
 
textUSD = Label(root, text = 'USD', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
textUSD.place(relx=.15, rely=.4)
 
textRUR = Label(root, text = '100RUR', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
textRUR.place(relx=.60, rely=.4)
 
date_text = StringVar()
dateEntry = Entry(root, width=12, bg="#ebebeb", fg='#2c2c2c', textvariable=date_text)
dateEntry.pack(anchor="c")
dateEntry.focus()
 
 
entryUSD = Entry(root, bg="#ebebeb", fg='#2c2c2c', bd=2, width=19)
entryUSD.place(relx=.01, rely=.6)
 
entryRUR = Entry(root, bg="#ebebeb", fg='#2c2c2c', bd=2, width=19)
entryRUR.place(relx=.51, rely=.6)
 
u_get1 = Button(root,  width = '16',fg='#2c2c2c', relief="ridge", text="Show", command=showRates)
u_get1.place(relx=.25, rely=.8)
 
root.bind ('<Return>', showRatesReturn)
root.bind('<Escape>', lambda e: root.destroy())
root.mainloop()
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
30.05.2019, 13:18
Лучший ответ Сообщение было отмечено Onet1me как решение

Решение

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from tkinter import*
import requests
import json
from datetime import datetime
import clipboard
 
#http://www.nbrb.by/API/ExRates/Currencies[/{Cur_ID}]
#http://www.nbrb.by/API/ExRates/Rates/145?onDate=год-месяц-число
urlUSD = 'http://www.nbrb.by/API/ExRates/Rates/145?onDate='
urlRUR = 'http://www.nbrb.by/API/ExRates/Rates/298?onDate=' 
 
def fetch_rate(currencyUrl, date):
    url = currencyUrl + date
    request = requests.get(url)
    rates = request.json()
    rate = rates['Cur_OfficialRate']
    return rate
 
 
def set_text_to(control, text):
    control.delete(0,END)
    control.insert(0,text)
    return
 
 
def showRateUSD():
    date_ch = date_text.get().replace('.', ',').split(',')
    date = str(datetime.strptime ('-'.join([date_ch[2], date_ch[1], date_ch[0]]), '%Y-%m-%d')).split()[0]
    rate = fetch_rate(urlUSD, date)
    set_text_to(entryUSD, rate)
 
 
 
 
def showRateRUR():
    date_ch = date_text.get().replace('.', ',').split(',')
    date = str(datetime.strptime ('-'.join([date_ch[2], date_ch[1], date_ch[0]]), '%Y-%m-%d')).split()[0]
    rate = fetch_rate(urlRUR, date)
    set_text_to(entryRUR, rate)
 
 
 
def showRates():
    showRateUSD()
    showRateRUR()
    
    
   
def showRatesReturn(e):
    showRates()
 
 
 
   
root = Tk()
root.title("Currencies")
#root.iconbitmap(r'C:\Windows\Masha.ico')
root.background = 'black'
root.geometry('250x150+960+400')
root.resizable(False, False)
root['bg'] = "#0d92a6"
#root.overrideredirect(1)
 
 
text1 = Label(root, text = 'DD.MM.YYYY', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
text1.pack(side=TOP)
 
textUSD = Label(root, text = 'USD', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
textUSD.place(relx=.15, rely=.4)
 
textRUR = Label(root, text = '100RUR', bg="#0d92a6", fg='white', font='Follyfont 11', padx="15", pady="6")
textRUR.place(relx=.60, rely=.4)
 
date_text = StringVar()
dateEntry = Entry(root, width=12, bg="#ebebeb", fg='#2c2c2c', textvariable=date_text)
dateEntry.pack(anchor="c")
dateEntry.focus()
 
 
entryUSD = Entry(root, bg="#ebebeb", fg='#2c2c2c', bd=2, width=19)
entryUSD.place(relx=.01, rely=.6)
entryUSD.bind('<Double-Button-1>', lambda x: clipboard.copy(x.widget.get()))
 
entryRUR = Entry(root, bg="#ebebeb", fg='#2c2c2c', bd=2, width=19)
entryRUR.place(relx=.51, rely=.6)
 
u_get1 = Button(root,  width = '16',fg='#2c2c2c', relief="ridge", text="Show", command=showRates)
u_get1.place(relx=.25, rely=.8)
 
root.bind ('<Return>', showRatesReturn)
root.bind('<Escape>', lambda e: root.destroy())
root.mainloop()
1
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
30.05.2019, 17:49  [ТС]
Спасибо тебе большое за помощь. Может ты знаешь еще как сделать что бы программа в трее появлялась или просто в панели управления. А то очень неудобно
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
30.05.2019, 18:05
Цитата Сообщение от Onet1me Посмотреть сообщение
Может ты знаешь еще как сделать что бы программа в трее появлялась или просто в панели управления
В tkinter нет средств для этого, но тут gui совсем простой, можно перевести на pyqt там можно сделать
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
30.05.2019, 18:26  [ТС]
pyQT сутки с установками промучился, так и не сделал. Выдает ошибки и не хочет работать( И версию питона менял и все равно нифига(
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
03.06.2019, 15:41  [ТС]
Привет, разобрался с PyQT, но не могу теперь функции подогнать, помоги пожалуйста:

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
58
59
60
61
62
63
64
65
66
67
68
69
# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'des.ui'
#
# Created: Fri May 31 00:25:52 2019
#      by: pyside-uic 0.2.15 running on PySide 1.2.4
#
# WARNING! All changes made in this file will be lost!
 
from PySide import QtCore, QtGui
 
 
class Ui_Form(object):
    def setupUi(self, Form):
        #Main Window
        Form.setObjectName("Form")
        Form.resize(250, 150)
        Form.setFixedSize(250, 150)
        Form.setAutoFillBackground(False)
        Form.setStyleSheet('background-color: #0d92a6;')
        Form.setWindowIcon(QtGui.QIcon("icon.png"))
        #Input Data
        self.lineEdit = QtGui.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(90, 20, 80, 20))
        self.lineEdit.setStyleSheet('background-color: white;')
        #self.lineEdit.inputMask(self. 0000-00-00)
        self.lineEdit.setObjectName("lineEdit")
        #Output USD
        self.lineEdit_2 = QtGui.QLineEdit(Form)
        self.lineEdit_2.setGeometry(QtCore.QRect(20, 80, 80, 20))
        self.lineEdit_2.setStyleSheet('background-color: white;')
        self.lineEdit_2.setObjectName("lineEdit_2")
        #Output RUR
        self.lineEdit_3 = QtGui.QLineEdit(Form)
        self.lineEdit_3.setGeometry(QtCore.QRect(150, 80, 80, 20))
        self.lineEdit_3.setStyleSheet('background-color: white;')
        self.lineEdit_3.setObjectName("lineEdit_3")
        #Name Date
        self.label_date = QtGui.QLabel(Form)
        self.label_date.setGeometry(QtCore.QRect(115, 5, 46, 13))
        self.label_date.setObjectName("label_date")
        #Name USD
        self.label_USD = QtGui.QLabel(Form)
        self.label_USD.setGeometry(QtCore.QRect(50, 60, 46, 13))
        self.label_USD.setObjectName("label_USD")
        #Name RUR
        self.label_RUR = QtGui.QLabel(Form)
        self.label_RUR.setGeometry(QtCore.QRect(175, 60, 46, 13))
        self.label_RUR.setObjectName("label_RUR")
        #Btn
        self.pushButton = QtGui.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(90, 120, 80, 20))
        self.pushButton.setStyleSheet('background-color: white;')
        #self.pushButton.returnPressed()
        self.pushButton.setObjectName("pushButton")
        
        
 
       
 
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
 
    def retranslateUi(self, Form):
        Form.setWindowTitle(QtGui.QApplication.translate("Form", "Currencies", None, QtGui.QApplication.UnicodeUTF8))
        self.label_date.setText(QtGui.QApplication.translate("Form", "DATE", None, QtGui.QApplication.UnicodeUTF8))
        self.label_USD.setText(QtGui.QApplication.translate("Form", "USD", None, QtGui.QApplication.UnicodeUTF8))
        self.label_RUR.setText(QtGui.QApplication.translate("Form", "RUR", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Form", "Show", None, QtGui.QApplication.UnicodeUTF8))
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
from PySide import QtCore, QtGui
import sys
from Layout import Ui_Form
import requests
import json
from datetime import datetime
import clipboard
 
#Create application
app = QtGui.QApplication(sys.argv) 
#Create form   
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
#logic
#http://www.nbrb.by/API/ExRates/Currencies[/{Cur_ID}]
#http://www.nbrb.by/API/ExRates/Rates/145?onDate=год-месяц-число
urlUSD = 'http://www.nbrb.by/API/ExRates/Rates/145?onDate='
urlRUR = 'http://www.nbrb.by/API/ExRates/Rates/298?onDate=' 
 
def fetch_rate(currencyUrl, date):
    url = currencyUrl + date
    request = requests.get(url)
    rates = request.json()
    rate = rates['Cur_OfficialRate']
    return rate
 
 
def set_text_to(control, text):
    control.delete(0,END)
    control.insert(0,text)
    return
 
 
def showRateUSD():
    date_ch = date_text.replace('.', ',').split(',')
    date = str(datetime.strptime ('-'.join([date_ch[2], date_ch[1], date_ch[0]]), '%Y-%m-%d')).split()[0]
    rate = fetch_rate(urlUSD, date)
    set_text_to(entryUSD, rate)
    #print (rate)
 
 
 
 
def showRateRUR():
    date_ch = date_text.replace('.', ',').split(',')
    date = str(datetime.strptime ('-'.join([date_ch[2], date_ch[1], date_ch[0]]), '%Y-%m-%d')).split()[0]
    rate = fetch_rate(urlRUR, date)
    set_text_to(entryRUR, rate)
    print (rate)
 
 
 
def showRates():
    showRateUSD()
    showRateRUR()
    
    
   
def showRatesReturn(e):
    showRates()
 
 
#Btn
date_text = ui.lineEdit.text()
#date_text = int(float(date_txt)
print (date_text)
 
ui.pushButton.clicked.connect(showRates)
 
 
 
#Form.bind ('<Return>', showRatesReturn)
#Form.bind('<Escape>', lambda e: root.destroy())
 
sys.exit(app.exec_())
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
03.06.2019, 19:49
Не устанавливается pyside на python 3.7, а что именно не получается?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2019, 19:49
Помогаю со студенческими работами здесь

Выполнение функции по нажатию Enter
Скажите, как мне выполнить функцию по нажатию на Enter в Windows Form's? Программа проста: в один textbox пользователь вводит...

Выполнение функции по нажатию Enter
Доброго времени суток! возник вопрос: Мне нужно записать значение функции в TextBox и после ввода значения в текстбокс, по нажатию...

Выполнение макроса по нажатию Enter
Помогите пожалуйста. Ест поле Имя. Надо чтобы после ввода данных при нажатии ентер запускался макрос1.

Выполнение расчетов по нажатию на enter
Здравствуйте, в форме есть несколько текстбоксов в которые вожу данные, после чего нажимаю на бутон (кнопку) и вообщем происходят мои...

Привязать выполнение действия кнопки на нажатие кнопки Enter
У меня кнопка - Button, выполняет такое то действие, не подскажите, как привязать выполнение действия этой кнопки на нажатие кнопки Enter?


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru