Форум сайта python.su
0
Добрый день, всем.
Есть такая задача. Нужно на python+Qt4 сделать окно, с двумя целочисленными полями ввода и одной кнопкой, по нажатии которой происходит вычисление по заданной формуле.
Т.е. должно быть окно, 2 поля для ввода чисел, и кнопка вычислить, по нажатию которой находится НОД 2-х введенных в поля чисел, и результат выводится в этом же окне, или в третьем целочисленном поле этого окна.
Помогите пожалуйста, оч надо, недавно начал изучать создание оконных приложений на python 3, этот пример очень нужен для дальнейшего продвижения в изучении.
Заранее спасибо!!!!
Офлайн
63
Если Qt не важно, то можно на Tkinter…
Офлайн
0
Вообще, всеж таки нужно именно на Qt.
Помогите пожалуйста, выложите код, кто может.
Офлайн
43
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_())
Офлайн
0
Спасибо огромное sergeek!!!
Офлайн
9
Вместо QtGui.QLineEdit() лучше использовать QtGui.QSpinBox(). Иначе придется писать валидатор для проверки введённых значений, т.к. QLineEdit позволяет вводить всё что угодно, а QSpinBox как раз предназначен для ввода целочисленных значений. Для вывода результата лучше использовать Qt.Gui.QLabel() либо задавать для QLineEdit атрибут setReadOnly(True).
В методе, вычисляющем НОД брать значения из атрибута QtGui.QSpinBox().value()
Отредактировано KriO (Сен. 23, 2013 21:23:32)
Офлайн