В PyQt5 модуль QWidgets предоставляет набор элементов интерфейса для создания классических пользовательских интерфейсов рабочего стола. Виджеты могут отображать данные и информацию о статусе, получать ввод пользователя и предоставлять контейнер для других виджетов, которые должны быть сгруппированы вместе. Виджет, который не встроен в родительский виджет называется window.A родительский виджет, содержащий различные ребенка widgets.So сначала начать писать код для вашего окна, как
window=QtWidgets.QWidget()
(Класс QWidget является базовым классом всех объектов пользовательского интерфейса). После создания вашего окна вам нужно установить макет для вашего окна пользовательского интерфейса. Существует много классов для макетов в Qt, но наиболее распространенными являются QVBoxLayout
(для выравнивания виджета по вертикали.) И QHBoxLayout
(для выравнивания виджета по горизонтали.), И много раз они оба используются для создания настраиваемого макета. Теперь создать свой QVBoxLayout
в
vbox=QWidgets.QVBoxLayout()
(обратите внимание, что здесь VBox это просто имя переменной) .Отель следующая вещь, чтобы поместить виджеты в окне, которое может быть сделано, как
text_1=QtWidgets.QLineEdit()
text_2=QtWidgets.QLineEdit()
run_btn=QtWidgets.QPushButton("run")
text_3=QtWidgets.QLineEdit()
Обратите внимание, что в QPushButton
мы можем назвать имя кнопки в качестве аргумента (ex-run
в этом случае). Настало время для событий и сигналов. Чтобы подключить PushButton к функции, напишите btn.clicked.connect(function_name)
здесь btn
- это наш PushButton. Обратите внимание, что имя_функции не имеет круглых скобок, что означает, что мы не вызывали эту функцию, просто подключили кнопку к функции (когда пользователь нажмет кнопку кнопка функция запускается на выполнение) .Foramlly это можно записать в виде
run_btn=QtWidgets.QPushButton("run")
def main():
data_1=text_1.text()
data_2=text_2.text()
text_3.setText(str(int(data_1)+int(data_2)))
в настоящее время в нашей main
функции мы впервые собрали данные из text_1
и text_2
(есть text()
метод QLineEdit
, чтобы получить данные из QLineEdit как str
). Так что наша функция main
принимает значения как text_1
и text_2
и добавляет их (это приведет к возникновению ошибки, если введенные значения не могут быть преобразованы в целые числа) и устанавливает это значение в text_3
методом setText()
.
Теперь вы должны упаковать виджеты в нашем vbox
, который мы создали ранее, как
vbox.addWidget(text_1)
vbox.addWidget(text_2)
vbox.addWidget(run_btn)
vbox.addWidget(text_3)
И теперь задающие расположение нашего окна, как
window.setLayout(vbox)
и показать окно, как
window.show()
К настоящему моменту отсутствует одна вещь, и это линия
app=QtWidgets.QApplication(sys.argv)
Эта строка необходима, поскольку каждое приложение PyQt5 должно создать объект приложения. Параметр sys.argv
представляет собой список аргументов из командной строки. Теперь мы должны создать mainloop приложения. Обработка событий начинается с этого момента. Метод app.exec_()
запускает наше приложение, а затем обеспечивает чистый выход.
Теперь положить все вместе:
import sys
from PyQt5 import QtWidgets
app=QtWidgets.QApplication(sys.argv)
window=QtWidgets.QWidget()
vbox=QtWidgets.QVBoxLayout()
text_1=QtWidgets.QLineEdit()
text_2=QtWidgets.QLineEdit()
run_btn=QtWidgets.QPushButton("run")
text_3=QtWidgets.QLineEdit()
def main():
data_1=text_1.text()
data_2=text_2.text()
text_3.setText(str(int(data_1)+int(data_2)))
run_btn.clicked.connect(main)
vbox.addWidget(text_1)
vbox.addWidget(text_2)
vbox.addWidget(run_btn)
vbox.addWidget(text_3)
window.setLayout(vbox)
window.show()
sys.exit(app.exec_())
Это сделает окно пользовательского интерфейса, как это:
Надеется, что это помогает. Пожалуйста, сделайте комментарий в случае возникновения проблем. Счастливое кодирование!
Следуйте приведенному ниже примеру кода, но используйте метод getText() для извлечения текста из текстовых полей. https://pythonspot.com/en/pyqt4-textbox/ –