python - Python PyQt5标签进入全局变量
问题描述
我有 Ui_MainWindow 类,在这个类中有一个函数setupUI和sendmail函数。在 setupUI 中有lineEdit和lineEdit_2。我必须将此变量的文本放入sendmail def 中的另一个变量中并在setupUI中使用它我该怎么做?此代码必须将该行编辑的文本发送到我的 gmail。
这是 sendmail 函数的代码:
class Ui_MainWindow(object):
myaddr = "my@gmail.com"
mypass = "my_password"
toaddr = "your@gmail.com"
def sendmail(label_2, label_3):
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(myaddr, mypass)
server.sendmail(myaddr, toaddr, message)
server.quit()
这是 setupUI 代码:
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(470, 332)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.warface = QtWidgets.QLabel(self.centralwidget)
self.warface.setGeometry(QtCore.QRect(160, 0, 171, 41))
font = QtGui.QFont()
font.setPointSize(22)
self.warface.setFont(font)
self.warface.setObjectName("warface")
self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton.setGeometry(QtCore.QRect(330, 80, 101, 17))
self.radioButton.setObjectName("radioButton")
self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_2.setGeometry(QtCore.QRect(330, 110, 101, 17))
self.radioButton_2.setObjectName("radioButton_2")
self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_3.setGeometry(QtCore.QRect(330, 140, 101, 17))
self.radioButton_3.setObjectName("radioButton_3")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(160, 200, 141, 51))
font = QtGui.QFont()
font.setPointSize(9)
self.pushButton.setFont(font)
self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton.setObjectName("pushButton")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(30, 80, 51, 41))
font = QtGui.QFont()
font.setPointSize(10)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(20, 120, 51, 41))
font = QtGui.QFont()
font.setPointSize(10)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(80, 130, 151, 21))
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(80, 90, 151, 21))
self.lineEdit_3.setObjectName("lineEdit_3")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 470, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.pushButton.clicked.connect(self.sendmail)
解决方案
查看 QLabel.text() 函数。您可以通过使用获取标签的文本
self.label_2.text()
并将其存储在 myaddr、mypass、toaddr 之后的变量中。
或者简单地定义一个变量并为其提供 self 对象,setupUI()
以便您可以访问其 QLabels。
推荐阅读
- azure - SecurityTokenInvalidSignatureException: IDX10511
- javascript - 带有用户输入 URL 的 Next.js 动态路由
- powershell - 无法转换“System.Collections.ArrayList”类型的“System.Collections.ArrayList”值
- angularjs - 如何更改产品图像在 PDP 上的显示?斯巴达克斯
- java - 我们应该使用 Mono
对于非 IO 操作? - javascript - 如何使 Firebase 中的用户对象可以在我的整个 Web 应用程序中访问?
- python - Django-Dramatiq - 如何配置 Dramatiq_abort
- reactjs - React 输入中的 Onchange 导致输入在每个字母上重新呈现
- ios - 滚动视图混淆选项卡之间的内容大小
- javascript - 在 react js 中对齐我的网页的输入字段。似乎无法理解我必须遵循的对齐方式。附布局