Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ILya от Март 03, 2020, 19:15



Название: PyQt5. Новичок
Отправлено: ILya от Март 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 (то есть ответ напечатать)

Читал смотре, но что то не понял, как это сделать


Название: Re: PyQt. Новичок
Отправлено: alexu007 от Март 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);


Название: Re: PyQt. Новичок
Отправлено: ILya от Март 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), он не печатает это в командной строке даже


Название: Re: PyQt. Новичок
Отправлено: Igors от Март 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))

Вы не первый и не последний кто пытается использовать "форум вместо букваря"  :) Не стоит, из этого ничего хорошего никогда не выходит