Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Простое окно с вводом и вычислением [RSS Feed]

#1 Сен. 18, 2013 11:16:11

Linux_er
Зарегистрирован: 2013-09-18
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Простое окно с вводом и вычислением

Добрый день, всем.

Есть такая задача. Нужно на python+Qt4 сделать окно, с двумя целочисленными полями ввода и одной кнопкой, по нажатии которой происходит вычисление по заданной формуле.

Т.е. должно быть окно, 2 поля для ввода чисел, и кнопка вычислить, по нажатию которой находится НОД 2-х введенных в поля чисел, и результат выводится в этом же окне, или в третьем целочисленном поле этого окна.

Помогите пожалуйста, оч надо, недавно начал изучать создание оконных приложений на python 3, этот пример очень нужен для дальнейшего продвижения в изучении.


Заранее спасибо!!!!



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

Офлайн

#2 Сен. 18, 2013 12:45:29

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Простое окно с вводом и вычислением

Если Qt не важно, то можно на Tkinter…



Офлайн

#3 Сен. 18, 2013 19:18:32

Linux_er
Зарегистрирован: 2013-09-18
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Простое окно с вводом и вычислением

Вообще, всеж таки нужно именно на Qt.
Помогите пожалуйста, выложите код, кто может.



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

Офлайн

#4 Сен. 18, 2013 20:57:07

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Простое окно с вводом и вычислением

from PyQt4 import QtGui
from fractions import gcd
 
app = QtGui.QApplication(sys.argv)
 
w = QtGui.QWidget()
 
mainLayout = QtGui.QHBoxLayout()
formLayout = QtGui.QFormLayout()
 
Line = QtGui.QLineEdit
 
a, b, res = Line(), Line(), Line()
 
for line, name in zip((a, b, res), ("a", "b", "res")):
    formLayout.addRow(name, line)
 
mainLayout.addLayout(formLayout)
 
button = QtGui.QPushButton("gcd")
button.clicked.connect(lambda : res.setText(str(gcd(int(a.text()), int(b.text())))))
 
mainLayout.addWidget(button)
 
w.setLayout(mainLayout)
 
w.show()
 
sys.exit(app.exec_())

Офлайн

#5 Сен. 18, 2013 22:16:49

Linux_er
Зарегистрирован: 2013-09-18
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Простое окно с вводом и вычислением

Спасибо огромное sergeek!!!



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

Офлайн

#6 Сен. 23, 2013 21:15:58

KriO
Зарегистрирован: 2012-10-07
Сообщения: 61
Репутация: +  9  -
Профиль   Отправить e-mail  

Простое окно с вводом и вычислением

Вместо QtGui.QLineEdit() лучше использовать QtGui.QSpinBox(). Иначе придется писать валидатор для проверки введённых значений, т.к. QLineEdit позволяет вводить всё что угодно, а QSpinBox как раз предназначен для ввода целочисленных значений. Для вывода результата лучше использовать Qt.Gui.QLabel() либо задавать для QLineEdit атрибут setReadOnly(True).
В методе, вычисляющем НОД брать значения из атрибута QtGui.QSpinBox().value()

Отредактировано KriO (Сен. 23, 2013 21:23:32)

Офлайн

  • Начало
  • » GUI
  • » Простое окно с вводом и вычислением[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version