Найти - Пользователи
Полная версия: Простое окно с вводом и вычислением
Начало » GUI » Простое окно с вводом и вычислением
1
Linux_er
Добрый день, всем.

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

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

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


Заранее спасибо!!!!
4kpt
Если Qt не важно, то можно на Tkinter…
Linux_er
Вообще, всеж таки нужно именно на Qt.
Помогите пожалуйста, выложите код, кто может.
sergeek
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
Спасибо огромное sergeek!!!
KriO
Вместо QtGui.QLineEdit() лучше использовать QtGui.QSpinBox(). Иначе придется писать валидатор для проверки введённых значений, т.к. QLineEdit позволяет вводить всё что угодно, а QSpinBox как раз предназначен для ввода целочисленных значений. Для вывода результата лучше использовать Qt.Gui.QLabel() либо задавать для QLineEdit атрибут setReadOnly(True).
В методе, вычисляющем НОД брать значения из атрибута QtGui.QSpinBox().value()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB