@David138

Как решить проблему с «TypeError: setEnabled(self, bool): argument 1 has unexpected type 'str'»?

Привет. столкнулся с такой проблемой
> python .\main.py
Traceback (most recent call last):
  File "C:\main.py", line 79, in writeF
    self.ui.lineEdit.setEnabled(value)
TypeError: setEnabled(self, bool): argument 1 has unexpected type 'str'

Вот мой код:
from PyQt5 import QtWidgets, QtCore
from design import Ui_MainWindow
import sys
class mywindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        #Здесь мы вносим изменения
        '''self.ui.lineEdit.setPlaceholderText("ip address1")
        self.ui.checkBox.stateChanged.connect(self.selected)
    def selected(self):
        value=True
        if self.ui.checkBox.isChecked():
            value=True
            self.ui.label_result.clear()
        else:
            value=False
            self.ui.label_result.setText("{}".format(self.ui.lineEdit.text()))
        self.ui.lineEdit.setEnabled(value)'''
        self.ui.lineEdit.setPlaceholderText("ip address1")
        self.ui.lineEdit_2.setPlaceholderText("ip address2")
        self.ui.lineEdit_3.setPlaceholderText("station name")
        self.ui.lineEdit_4.setPlaceholderText("station number")
        self.ui.lineEdit_5.setPlaceholderText("transmitter number")
        self.ui.checkBox.stateChanged.connect(self.writeF)
    def writeF(self):
    #def replData(ip1, ip2, sName, sNumb, tNumb):
        # список ключей, которые нужно будет заменить в файле template
        keys=['_ip1_', '_ip2_', '_sName_', '_sNumb_', '_tNumb_']
        #print(keys) 
        #Создаем список значений, на которые нужно будет заменить
        values=[]
        ip1 = self.ui.lineEdit.text()
        ip2 = self.ui.lineEdit_2.text()
        sName = self.ui.lineEdit_3.text()
        sNumb = self.ui.lineEdit_4.text()
        tNumb = self.ui.lineEdit_5.text()
        values.append(ip1)
        values.append(ip2)
        values.append(sName)
        values.append(sNumb)
        values.append(tNumb)
        #print(values)
        #Создаем словарь. в качестве ключей (keys) это будут список значений, в 
            #котором надо будет заменить в файле template, а в качестве значений 
            #(values) - список значений, на которые нужно будет заменить
        dictionary={}
        for i in range(len(keys)):
            dictionary[keys[i]] = values[i]
            search_text = dictionary[keys[i]]
            replace_text = keys[i]
            #print(search_text)
            #print(replace_text)
        value=True
        if self.ui.checkBox.isChecked():
            value=True
            #Считываем файл template, и меняем значения
            with open(r'template.txt', 'r') as oFile:
                rFile = oFile.read()
                for key, value in dictionary.items():
                    rFile = rFile.replace(key, str(value))
            #print(rFile) 
            #Запишем изменения в файл output
            with open(r'output.txt', 'a') as wFile:
                wFile.write('\n')
                wFile.write('\n')
                wFile.write('\n')
                wFile.write(rFile) 
            self.ui.lineEdit.clear()
            self.ui.lineEdit_2.clear()
            self.ui.lineEdit_3.clear()
            self.ui.lineEdit_4.clear()
            self.ui.lineEdit_5.clear()
        #else:
        #    value=False
        #    self.ui.label_result.setText("{}".format(self.ui.lineEdit.text()))
        #    self.ui.label_result.setText("{}".format(ip1))
        self.ui.lineEdit.setEnabled(value)
    '''
    repeat="y"
    while repeat == "y":
        #ip1, ip2, sName, sNumb, tNumb = 1111, 2222, 3333, 4444, 5555
        #ip1, ip2, sName, sNumb, tNumb = input("Enter the IP address1: "), input("Enter the IP address2: "), input("Enter the station name: "), input("Enter the station number: "), input("Enter the transmitter number: ")    
        replData(ip1, ip2, sName, sNumb, tNumb)
        #Если нужно повторить:
        repeat = input("Do you want to continue? (y/n): ")
        if repeat == "n":
            break
        while (repeat!="y" and repeat!="n"):
            repeat = input("Please enter the correct answer (y/n): ")
    '''
app = QtWidgets.QApplication([])
application = mywindow()
application.show() 
sys.exit(app.exec())

Начинаю изучать Python. Я разработал программу, которая считывает данные у пользователя в графическом интерфейсе через pyqt5 и qt designer, записывает эти данные в файл output.txt. Но столкнулся с проблемой что в командной строке выдает ошибку, которую я показал выше. Что я сделал не такю
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы