lithium锂 2021-11-05 12:02 采纳率: 66.7%
浏览 2240

pyqt5 遇到了TypeError: setText(self, str): argument 1 has unexpected type 'method'错误

代码如下

from PyQt5 import *
from PyQt5 import QtWidgets
from PyQt5 import QtGui
from PyQt5 import QtCore
import requests
import json
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtWidgets import QApplication, QMainWindow,QPushButton , QTextEdit, QWidget

class Apd(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        ###设置主窗口的标题###
        self.setWindowTitle = "text.button"
        ###设置窗口的尺寸###
        self.resize(600, 550)
        ##设置垂直布局
        layout = QVBoxLayout()
        self.setLayout(layout)
        ###设置状态栏###
        self.status = self.statusBar()
        self.status.showMessage("显示各种各样的股票信息", 5000)
        ##创建文本框用于显示
        font = QtGui.QFont()
        font.setFamily("微软雅黑")
        font.setPointSize(10)
        self.text_browser = QTextBrowser(self)
        self.text_browser.move(160, 30)
        self.text_browser.resize(400,400)
        ##按钮
        button = QPushButton("测试", self)
        button.move(20, 120)
        button.setToolTip("这是爬取股票五分钟涨幅相关股票")
        button.clicked.connect(self.Brower)
        ##显示
        self.show()

    def Brower(self):
        self.text_browser.setText(self.stockA)

    def stockA(self):
        headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'}
##爬取五分钟涨幅股票信息前三页
        for num in range(2):
            url = "http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2Fdiyrank.php&page=" + str(num) + "&query=STYPE%3AEQA&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO.MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=FIVE_MINUTE&order=desc&count=24&type=query"
            html = requests.get(url,headers=headers).text.encode()
            data = json.loads(html)
            news = data['list']
            for n in news:
            ##股票名称##
                data1 = n['NAME']
            ##股票代码##
                data2 = n['SYMBOL']
            ##股票价格##
                data3 = str(n['PRICE'])
            ##涨跌幅##
                data4 = str(n['UPDOWN'])
                dat = {"名称":data1,"代码":data2,"价格":data3,"涨跌":data4}
                print(dat)
                 


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Apd()
    ex.show()
    sys.exit(app.exec_())

报如下错误,不是很理解,百度上也没有相关资料,qwq

    self.text_browser.setText(self.stockA)    
TypeError: setText(self, str): argument 1 has 
unexpected type 'method'
  • 写回答

1条回答 默认 最新

  • 对象被抛出 2021-11-05 16:14
    关注

    setText()明显要接受一个str参数, 你直接传了一个函数能对吗...而且这stockA()也没有返回值啊, 光把爬到的数据打印出来, 没有保存
    stockA()返回data, 然后setText(str(stockA()))

    评论

报告相同问题?

问题事件

  • 创建了问题 11月5日

悬赏问题

  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名
  • ¥15 算法设计与分析课程的提问
  • ¥15 用MATLAB汇总拟合图
  • ¥15 智能除草机器人方案设计
  • ¥15 对接wps协作接口实现消息发送
  • ¥15 SQLite 出现“Database is locked” 如何解决?
  • ¥15 已经加了学校的隶属邮箱了,为什么还是进不去github education?😭
  • ¥15 求会做聚类,TCN的朋友有偿线上指导。以下是目前遇到的问题
  • ¥100 无网格伽辽金方法研究裂纹扩展的程序