Russian Qt Forum
Апрель 07, 2020, 18:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: PyQt5. Новичок  (Прочитано 297 раз)
ILya
Новичок

Offline Offline

Сообщений: 2


Просмотр профиля
« : Март 03, 2020, 19:15 »

Код
Python
 

Здравствуйте! Python. PyQt5. Помогите.  Начал изучение Qt. У меня будет окно и там несколько строк, куда нужно будет вводить цифры(пользователь будет вводить)

1) Какую лучше выбирать  для этого? (Text edit, line edit....)

2) Как мне забрать эти данные? То есть, пользователь ввел в Textedit_2 число 500
 И я хочу, чтобы переменная P = Textedit_2. Так как после идут формулы какие то U = P/2

3)И нужно в другую строчку напечатать переменную U (то есть ответ напечатать)

Читал смотре, но что то не понял, как это сделать
« Последнее редактирование: Март 03, 2020, 22:26 от ILya » Записан
alexu007
Новичок

Offline Offline

Сообщений: 6


Просмотр профиля
« Ответ #1 : Март 03, 2020, 20:23 »

1. Какую нужно исходя из потребностей программы. Название само говорит: TextEdit для текста, LineEdit - для одной строчки, цифры, слова и т.п.

2. Во всех случаях в этих штуках всегда только текст, даже если это 12345. Можно прочитать в строковую переменную и принудительно перевести в цифру:

Код
C++ (Qt)
   QString str = ui->lineEdit->Text();
   int x = str.toInt();

3. Вывести результат можно в метку (label), и в lineEdit, и в textEdit - смотря сколько чего выводить, исходя из потребностей и дизайна программы. В метке просто будет надпись, из эдитов можно выделить мышкой и скопировать содержимое для дальнейшего использования (если надо). В эдитах можно запретить редактирование - использовать только как вывод. По аналогии с вводом выводится текст, цифру нужно предварительно перевести в текст. Делается это так:

Код
C++ (Qt)
   int x = 12345;
   QString str = QString::number(x);
   ui->label->setText(str);

Впрочем, в метку можно и напрямую выводить цифру методом setNum():

Код
C++ (Qt)
   int x = 12345;
   ui->label->setNum(x);
Записан
ILya
Новичок

Offline Offline

Сообщений: 2


Просмотр профиля
« Ответ #2 : Март 03, 2020, 21:32 »

Вы написали на си.
Я питон использую. Правильно ли я понял назначение. ui->lineEdit->Text() (просто обращение к файлу и к строке). PyQt5 не знает про это или что то не то QString


        str = QString(self.textEdit_3.Text())
        self.textEdit_2.Text(str)


        str = self.textEdit_3.Text()
        self.textEdit_2.Text(str)



Набираю текст и нажимаю ОК, он просто закрывает программу. Делал print(str), он не печатает это в командной строке даже
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 10740


Просмотр профиля
« Ответ #3 : Март 04, 2020, 08:01 »

Читал смотре,
А я вижу что "не чита" и "не смотре"
        str = QString(self.textEdit_3.Text())
        self.textEdit_2.Text(str)


        str = self.textEdit_3.Text()
        self.textEdit_2.Text(str)
text (а не Text). А чтобы установить setText. Впечатление что доку Вы даже не открывали

Делал print(str), он не печатает это в командной строке даже
Ну так printf в "С" тоже не будет печатать QString, это же класс. Попробуйте
print(unicode(str))

Вы не первый и не последний кто пытается использовать "форум вместо букваря"  Улыбающийся Не стоит, из этого ничего хорошего никогда не выходит
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.214 секунд. Запросов: 22.