Textbox in 2ter Datei verwenden

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Noodl
User
Beiträge: 1
Registriert: Sonntag 2. Februar 2020, 17:56

Hallo zusammen,

ich bin noch ganz frisch in der Programmierung und hab da ein kleines Problemchen :)
Ich würde gerne die funktionen für die Buttons in einer eigenen Datei Speichern, damit es ein wenig übersichtlicher wird.

Wenn ich dann eine Funktion mit einet Textbox anwende bekomme ich immer einen Fehler:

" File "c:\Users\at00182950\Desktop\qt\buttons.py", line 22, in click_Ping
hostname = self.txt_Ping.text() #"10.128.4.130" example
AttributeError: 'bool' object has no attribute 'txt_Ping'"

Main Datei: Aufruf

Code: Alles auswählen

 self.bnt_Go_Ping.clicked.connect(buttons.test.click_Ping)
Funktions Datei:

Code: Alles auswählen

from PyQt5 import QtCore, QtGui, QtWidgets

from rbTool import Ui_MainWindow

app= QtWidgets.QApplication(sys.argv)

class test(QtWidgets.QMainWindow): 

    def click_MKS(self):
            os.startfile('C:/Eigene/MyTool/MKS_Config.xls')


    def click_RNA(self):
            os.startfile('C:/Eigene/MyTool/Zutritt/New_IP_Schema_Rollout_.xls')



    def click_Ping(self):
        hostname = self.txt_Ping.text()        #"10.128.4.130" example
        response = os.system("ping -c 1 " + hostname)

            #and then check the response...
        if response == 0:
            x=  'Online !'
            self.lblPing.setStyleSheet("background-color: green;")
        else:
            x= hostname + 'Offline!'
            self.lblPing.setStyleSheet("background-color: red;")

        self.lblPing.setText(x)
        self.txt_Ping.clear()
Wie kann ich auf die Textbox und die Labels zugreifen bzw auf Steuerelemente?
Würde mich über Antworten freuen :D :D

LG
Manfred
Sirius3
User
Beiträge: 18253
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Aufteilung funktioniert so nicht. button.test hat mit der Fenster-Klasse und deren Instanz, in der txt_Ping definiert ist, nichts zu tun. Die Funktion buttons.test.click_Ping bekommt als Argument wohl ein Bool, das an `self` gebunden wird, auch wenn das hier keinen Sinn macht.

Namen sollten übrigens keine Abkürzungen enthalten. os.system sollte nicht verwendet werden, insbesondere wenn Usereingaben ungeprüft übernommen werden.
Antworten