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