python - 我已经从 pyqt 设计师设计了 ui 现在我想将该按钮和标签连接在一起
问题描述
如何定义 find Qlabel、Qpushbutton 和 QlineEdit 来修复该属性错误?
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
from PyQt5.uic import loadUiType
Ui, _ = loadUiType('tempconverter.ui')
class MainApp(QMainWindow , Ui):
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
self.pushButton.clicked.connect(self.cal)
def cal(self):
temp = self.temp_in.text
far=int(temp)*9/5+32
self.answer.setText(str(far))
def main():
app = QApplication(sys.argv)
window = MainApp()
window.show()
app.exec_()
if __name__ == "__main__":
main()
回溯(最后一次调用):文件“d:/pythonproj/temp_test2.py”,第 17 行,在 cal temp = self.temp_in.text 中 AttributeError:'MainApp' 对象没有属性 'temp_in'``
解决方案
您真的应该考虑发布 .ui 文件中定义 temp_in 的部分,但我可以看到一些错误的地方。
首先,你有这一行:
temp = self.temp_in.text
这应该是:
temp = self.temp_in.text()
要让 QLineEdits 检索您需要运行函数 text() 的文本(它不是参数)。
从错误消息来看,您似乎使用了错误的 QLineEdit 名称。您是否可能不小心使用了 QLabel 的名称?可能有帮助的是运行pyuic5将 .ui 文件转换为 Python 代码。这将让您使用代码完成来查看在您的 IDE 中定义了哪些元素。
推荐阅读
- c# - Selenium 等到使用 Element 而不是 By
- c# - 如何从 C# 中的 .so 文件调用外部 C 函数?
- android - 使用 MultiDex 时 getApplicationContext 为空
- php - 用动态规划解决多项选择背包(MCKP)?
- reactjs - 使用 React.js 实现 SSR 的正确方法
- python - 为什么在 OpenCV Python 中按位发送错误?
- c# - C# 返回(动态还是匿名?)对象,具有来自其他方法的返回值作为属性
- xml - 定义我的 sympleTypes 给出“类型未声明,或者不是简单类型”
- testing - TestCafe 使用 --ssl 命令抛出 Mac 验证失败错误
- c# - 如果未在 ASP.NET 中进行身份验证,将用户重定向到登录页面?