Linux_er
Сен. 18, 2013 11:16:11
Добрый день, всем.
Есть такая задача. Нужно на python+Qt4 сделать окно, с двумя целочисленными полями ввода и одной кнопкой, по нажатии которой происходит вычисление по заданной формуле.
Т.е. должно быть окно, 2 поля для ввода чисел, и кнопка вычислить, по нажатию которой находится НОД 2-х введенных в поля чисел, и результат выводится в этом же окне, или в третьем целочисленном поле этого окна.
Помогите пожалуйста, оч надо, недавно начал изучать создание оконных приложений на python 3, этот пример очень нужен для дальнейшего продвижения в изучении.
Заранее спасибо!!!!
4kpt
Сен. 18, 2013 12:45:29
Если Qt не важно, то можно на Tkinter…
Linux_er
Сен. 18, 2013 19:18:32
Вообще, всеж таки нужно именно на Qt.
Помогите пожалуйста, выложите код, кто может.
sergeek
Сен. 18, 2013 20:57:07
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_())
Linux_er
Сен. 18, 2013 22:16:49
Спасибо огромное sergeek!!!
KriO
Сен. 23, 2013 21:15:58
Вместо QtGui.QLineEdit() лучше использовать QtGui.QSpinBox(). Иначе придется писать валидатор для проверки введённых значений, т.к. QLineEdit позволяет вводить всё что угодно, а QSpinBox как раз предназначен для ввода целочисленных значений. Для вывода результата лучше использовать Qt.Gui.QLabel() либо задавать для QLineEdit атрибут setReadOnly(True).
В методе, вычисляющем НОД брать значения из атрибута QtGui.QSpinBox().value()