Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 23

Как сделать ввод данных пользователем в поле lineEdit и передать результат обратно в функцию?

13.03.2020, 15:54. Показов 3560. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел шифр виженера, теперь не могу сделать так, чтобы он работал вместе с интерфейсом
Миниатюры
Как сделать ввод данных пользователем в поле lineEdit и передать результат обратно в функцию?   Как сделать ввод данных пользователем в поле lineEdit и передать результат обратно в функцию?  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2020, 15:54
Ответы с готовыми решениями:

Как считать функцию с lineEdit, чтобы можно было передать ей х?
Надо введённую функцию подставить в def1, выдает ошибку при таком коде.Помогите def F1(x): return ui.lineEdit.text()

Как сделать кнопку неактивной, если LineEdit пустой, и активной когда в LineEdit введен текст?
Всем привет! Столкнулся с такой ситуацией: в окне есть виджет LineEdit и кнопка. Я хочу чтобы при пустом LineEdit кнопка была...

Как передать функцию в массив и обратно
Как передать функцию в массив и обратно

9
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
14.03.2020, 10:44
Цитата Сообщение от VOLFRAMHERO Посмотреть сообщение
теперь не могу сделать так, чтобы он работал вместе с интерфейсом
Убирайте все input и print и берите данные с виджетов формы
0
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 23
15.03.2020, 10:15  [ТС]
Хорошо, это я понял. Тогда как дать понять функции, чтобы она брала значения с моего lineEdit?

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
from PySide import QtCore, QtGui
import sys
from Shifr import Ui_Form
from re import *
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    
 
 
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
def shift():
    #ui.lineEdit.setText.cryptMode = input("[E]ncrypt|[D]ecrypt: ").upper()
    if ui.lineEdit not in ['E', 'D']:
        print("Error: mode is not Found!");
        raise SystemExit
    #startMessage = input("Write the message: ")
    #oneKey = input("Write the key: ")
 
    def encryptDecrypt(mode, message, key):
        key *= len(message) // len(key) + 1
        finalMessage = ""
        for i, j in enumerate(message):
            if mode in ['E', 'e']:
                temp = ord(j) + ord(key[i])
            else:
                temp = ord(j) - ord(key[i])
            finalMessage += chr(temp % 33 + ord('А'))
        return finalMessage
    ui.lineEdit_2.setText(encryptDecrypt(cryptMode, startMessage, oneKey))
 
ui.pushButton.clicked.connect(shift)
 
 
sys.exit(app.exec_())
input (" Нажмите для выхода ... ")
Миниатюры
Как сделать ввод данных пользователем в поле lineEdit и передать результат обратно в функцию?   Как сделать ввод данных пользователем в поле lineEdit и передать результат обратно в функцию?  
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
15.03.2020, 10:46
Код формы еще нужен
0
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 23
15.03.2020, 10:51  [ТС]
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
# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'Shifr.ui'
#
# Created: Sun Mar 15 14:48:42 2020
#      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):
        Form.setObjectName("Form")
        Form.resize(606, 469)
        Form.setStyleSheet("QWidget{\n"
"background-color:white;\n"
"}")
        self.label = QtGui.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(250, 0, 111, 20))
        self.label.setStyleSheet("QLabel:hover{\n"
"color:red;\n"
"}")
        self.label.setObjectName("label")
        self.label_3 = QtGui.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(10, 80, 101, 21))
        self.label_3.setStyleSheet("QLabel{\n"
"color:green;\n"
"}")
        self.label_3.setObjectName("label_3")
        self.lineEdit = QtGui.QLineEdit(Form)
        self.lineEdit.setEnabled(True)
        self.lineEdit.setGeometry(QtCore.QRect(140, 80, 111, 21))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtGui.QLineEdit(Form)
        self.lineEdit_2.setGeometry(QtCore.QRect(140, 250, 351, 71))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.label_2 = QtGui.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(10, 120, 41, 16))
        self.label_2.setStyleSheet("QLabel{\n"
"color:blue;\n"
"}")
        self.label_2.setObjectName("label_2")
        self.pushButton = QtGui.QPushButton(Form)
        self.pushButton.setEnabled(True)
        self.pushButton.setGeometry(QtCore.QRect(150, 340, 329, 23))
        self.pushButton.setStyleSheet("QPushButton:hover{\n"
"background-color:gold;\n"
"border-radius: 50px;\n"
"}")
        self.pushButton.setObjectName("pushButton")
        self.lineEdit_3 = QtGui.QLineEdit(Form)
        self.lineEdit_3.setGeometry(QtCore.QRect(140, 120, 113, 20))
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.lineEdit_4 = QtGui.QLineEdit(Form)
        self.lineEdit_4.setGeometry(QtCore.QRect(140, 160, 113, 20))
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.label_4 = QtGui.QLabel(Form)
        self.label_4.setGeometry(QtCore.QRect(10, 160, 47, 13))
        self.label_4.setStyleSheet("QLabel{\n"
"color:red;\n"
"}")
        self.label_4.setObjectName("label_4")
        self.label_5 = QtGui.QLabel(Form)
        self.label_5.setGeometry(QtCore.QRect(270, 220, 61, 16))
        self.label_5.setStyleSheet("QLabel:hover{\n"
"color:green;\n"
"}")
        self.label_5.setObjectName("label_5")
 
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
 
    def retranslateUi(self, Form):
        Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
        self.label.setText(QtGui.QApplication.translate("Form", "ТРЕТЬЯ ПРОГРАММА", None, QtGui.QApplication.UnicodeUTF8))
        self.label_3.setText(QtGui.QApplication.translate("Form", "[E]ncrypt|[D]ecrypt", None, QtGui.QApplication.UnicodeUTF8))
        self.label_2.setText(QtGui.QApplication.translate("Form", "Текст", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Form", "Выполнить", None, QtGui.QApplication.UnicodeUTF8))
        self.label_4.setText(QtGui.QApplication.translate("Form", "Ключ", None, QtGui.QApplication.UnicodeUTF8))
        self.label_5.setText(QtGui.QApplication.translate("Form", "Результат", None, QtGui.QApplication.UnicodeUTF8))
 
 
if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Form = QtGui.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())
Миниатюры
Как сделать ввод данных пользователем в поле lineEdit и передать результат обратно в функцию?  
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
15.03.2020, 12:00
Лучший ответ Сообщение было отмечено VOLFRAMHERO как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cryptMode = ui.lineEdit.text()
    startMessage = ui.lineEdit_3.text()
    oneKey = ui.lineEdit_4.text()
    print(cryptMode, startMessage, oneKey)
    if cryptMode not in ['E', 'D']:
        print("Error: mode is not Found!");
        raise SystemExit
    #startMessage = input("Write the message: ")
    #oneKey = input("Write the key: ")
 
    def encryptDecrypt(mode, message, key):
        key *= len(message) // len(key) + 1
        finalMessage = ""
        for i, j in enumerate(message):
            if mode in ['E', 'e']:
                temp = ord(j) + ord(key[i])
            else:
                temp = ord(j) - ord(key[i])
            finalMessage += chr(temp % 33 + ord('А'))
        return finalMessage
    ui.lineEdit_2.setText(encryptDecrypt(cryptMode, startMessage, oneKey))
1
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 23
15.03.2020, 12:17  [ТС]
Прога сразу закрывается после запуска, даже ввод не могу сделать(
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
15.03.2020, 12:23
Цитата Сообщение от VOLFRAMHERO Посмотреть сообщение
Прога сразу закрывается после запуска, даже ввод не могу сделать(
Нужно заменить строки с 17 по 36
1
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 23
15.03.2020, 12:27  [ТС]
Спасибо большое, просто гений) Кстати, если не сложно, где лучше интерфейс делать на python? И какое пособие почитать?
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
15.03.2020, 12:36
Цитата Сообщение от VOLFRAMHERO Посмотреть сообщение
Кстати, если не сложно, где лучше интерфейс делать на python? И какое пособие почитать?
Книга Python 3 и PyQt 5. Разработка приложений
Можно установить pyqt50tools, там есть designer, там можно интерфейс делать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2020, 12:36
Помогаю со студенческими работами здесь

Сделать задачу с использованием JavaScript, ввод данных осуществляется пользователем
Провайдер интернет-услуг собирается предложить в городе N услуги доступа к Интернет через подключение к телевизионной сети. ...

При ограничении у lineEdit а ввод только числами, все равно возможно ввести 1 букву в его поле
void MainWindow::on_lineEdit_1_textChanged(const QString &arg1) { ui -> lineEdit_1 -> setValidator( new QIntValidator(1, 1000,...

Вместо текста в массиве сделать ввод с LineEdit
Добрый вечер! Помогите пожалуйста в такой проблеме. Вот массив должен выводить только цифры (работает), но при этом выводит только с...

Передать результат работы JavaScript в Java и обратно
приложение у меня с сервлетами, мавеном, jsp. html и обсчитывается через Java есть JSP страничка. с кнопочкой, при нажатии срабатывает...

Как передать введенное пользователем число в функцию в отдельном файле js
Доброго времени суток) Необходимо вычислить факториал числа на js создаем 2 файла: html страничку с условием задачи, элементом text и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru