首页 > 解决方案 > 类型错误:参数 1 具有意外类型“QPushButton”

问题描述

我写了这段代码:

import sys
import os
from PyQt5 import QtWidgets

class Notepad(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()
    def init_ui(self):
        self.yazi_alani = QtWidgets.QTextEdit()
        self.temizle = QtWidgets.QPushButton("Temizle")
        self.kaydet = QtWidgets.QPushButton("Kaydet")
        self.dosya_ac = QtWidgets.QPushButton("Dosya Aç")

        v_box = QtWidgets.QVBoxLayout()

        v_box.addWidget(self.yazi_alani)
        v_box.addWidget(self.temizle)
        v_box.addWidget(self.kaydet)
        v_box.addWidget(self.dosya_ac)

        self.setLayout(v_box)
        self.setWindowTitle("Barış'ın Notepad Programı")
        self.setGeometry(200,200,800,600)
        self.temizle.clicked.connect(self.temizle)
        self.kaydet.clicked.connect(self.kaydet)
        self.dosya_ac.clicked.connect(self.dosya_ac)
        self.show()
    def temizle(self):
        self.yazi_alani.clear()
    def kaydet(self):         
        dosya_ismi = QtWidgets.QFileDialog.getSaveFileName(self,"Dosya Kaydet",os.getenv("HOME"))
        with open (dosya_ismi[0],"w",encoding="utf-8") as file:
            file.write(self.yazi_alani.toPlainText())

def dosya_ac(self):
    dosya_ismi = QtWidgets.QFileDialog(self, "Dosya Aç", os.getenv("HOME"))
    with open(dosya_ismi[0],"r",encoding="utf-8") as file:
        self.yazi_alani.setText(file.read())

应用程序 = QtWidgets.QApplication(sys.argv)

便士 = 记事本()

sys.exit(app.exec())

我收到了这个错误:

Traceback (most recent call last):
    File "C:/Users/noikp/Desktop/PyQt5 projem.py", line 41, in <module>
    pencere = Pencere()
  File "C:/Users/noikp/Desktop/PyQt5 projem.py", line 8, in __init__
    self.init_ui()
  File "C:/Users/noikp/Desktop/PyQt5 projem.py", line 28, in init_ui
    self.temizle.clicked.connect(self.temizle)
TypeError: argument 1 has unexpected type 'QPushButton'

我该如何解决这个错误?如果你能快速回答可能会很好......

pythonerrors python错误错误errorrr python3-x

标签: pythonpython-3.xpyqtpyqt5typeerror

解决方案


您应该重命名按钮或功能。你在这里有方法 Notepad.temizle() AND button Notepad.temizle 所以当你期望发送消息时,你发送一个按钮,它是 typeError 我也可以看到其他方法的相同错误


推荐阅读