QT / Ausgabe auf Terminal
Verfasst: Samstag 6. Februar 2021, 16:34
Hallo zusammen,
vorab einmal zu mir, ich heisse Stefan bin 35 Jahre alt und bin gerade am Anfang etwas Python zulernen. Also bin ein noob^^
Ich möchte gerne ein Programm schreiben, dass dem Anwender zunächst einmal durch eine Login Maske führt.
Hierfür habe ich mit dem QT Designer ein Mainwindow und ein Dialog Window gebaut.
Der Zugriff via Signals auf den Dialog funktioniert auch soweit. Allerdings habe ich nun ein kleines verständnis Problem.
Für den Zugriff auf den Dialog habe ich eine neue Klasse gebaut. Der mir via loadUi wiederrum das UI Baut.
Innerhalb des Dialoges gibt es eine ComboBox mit 4 Einträgen. Dort soll der User ein Element ausswählen.
Ebenso gibt es dort eine 3 QlineEdits (Ip Adresse, username, password).
Diese Felder sollen ausgefüllt werden.
Nun zum Problem, ich würde gerne mir im Terminal ausgeben lassen, was der User dort eingetragen hat in die QLineEdit.
Ich dachte via
.text() würde das gehen.
print(self.ip_addr.text())
print(self.user_name.text())
print(self.password.text())
Allerdings schreibt er mir den Output erstnachdem ich auf Connect gedrückt habe den Output auf den Terminal. Ich würde es gerne sofort sehen wenn dort was hineingeschrieben wird.
Wäre cool wenn ihr mir einen kleinen Denkanstoss geben könntet.
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QTextEdit, QDialog, QLineEdit, QMenuBar, QComboBox
from PyQt5 import uic
from ciscoaxl import axl
import sys
class UI(QMainWindow):
def __init__(self):
super(UI, self).__init__()
self.ui = uic.loadUi("mainwindow.ui",self)
self.button = self.findChild(QPushButton, "login")
self.button.clicked.connect(self.PressButtonWrite)
#self.menuBar
def PressButtonWrite(self):
dia = Dialog()
class Dialog(QDialog):
def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.ui = uic.loadUi("login.ui", self)
self.connectbtn = self.findChild(QPushButton, "connect")
self.cancelbtn = self.findChild(QPushButton, "quit")
self.ip_addr = self.findChild(QLineEdit,"cucm_ip")
self.CucmVersion = self.findChild(QComboBox,"cucm_version")
self.user_name = self.findChild(QLineEdit,"username")
self.password = self.findChild(QLineEdit,"pwd")
self.connectbtn.clicked.connect(self.connect_cucm)
self.cancelbtn.clicked.connect(self.cancelfkt)
#self.ip_addr.setText("IP Adresse")
self.exec_()
print(self.ip_addr.text())
print(self.user_name.text())
print(self.password.text())
##print(self.CucmVersion.currenText())
def connect_cucm(self):
self.close()
def cancelfkt(self):
self.close()
##def ip(self):
#u = Dialog()
#print (u)
def main():
app = QApplication(sys.argv)
w = UI()
w.show()
app.exec_()
if __name__ == '__main__':
main()
Viele Grüße,
Stefan
vorab einmal zu mir, ich heisse Stefan bin 35 Jahre alt und bin gerade am Anfang etwas Python zulernen. Also bin ein noob^^
Ich möchte gerne ein Programm schreiben, dass dem Anwender zunächst einmal durch eine Login Maske führt.
Hierfür habe ich mit dem QT Designer ein Mainwindow und ein Dialog Window gebaut.
Der Zugriff via Signals auf den Dialog funktioniert auch soweit. Allerdings habe ich nun ein kleines verständnis Problem.
Für den Zugriff auf den Dialog habe ich eine neue Klasse gebaut. Der mir via loadUi wiederrum das UI Baut.
Innerhalb des Dialoges gibt es eine ComboBox mit 4 Einträgen. Dort soll der User ein Element ausswählen.
Ebenso gibt es dort eine 3 QlineEdits (Ip Adresse, username, password).
Diese Felder sollen ausgefüllt werden.
Nun zum Problem, ich würde gerne mir im Terminal ausgeben lassen, was der User dort eingetragen hat in die QLineEdit.
Ich dachte via
.text() würde das gehen.
print(self.ip_addr.text())
print(self.user_name.text())
print(self.password.text())
Allerdings schreibt er mir den Output erstnachdem ich auf Connect gedrückt habe den Output auf den Terminal. Ich würde es gerne sofort sehen wenn dort was hineingeschrieben wird.
Wäre cool wenn ihr mir einen kleinen Denkanstoss geben könntet.
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QTextEdit, QDialog, QLineEdit, QMenuBar, QComboBox
from PyQt5 import uic
from ciscoaxl import axl
import sys
class UI(QMainWindow):
def __init__(self):
super(UI, self).__init__()
self.ui = uic.loadUi("mainwindow.ui",self)
self.button = self.findChild(QPushButton, "login")
self.button.clicked.connect(self.PressButtonWrite)
#self.menuBar
def PressButtonWrite(self):
dia = Dialog()
class Dialog(QDialog):
def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.ui = uic.loadUi("login.ui", self)
self.connectbtn = self.findChild(QPushButton, "connect")
self.cancelbtn = self.findChild(QPushButton, "quit")
self.ip_addr = self.findChild(QLineEdit,"cucm_ip")
self.CucmVersion = self.findChild(QComboBox,"cucm_version")
self.user_name = self.findChild(QLineEdit,"username")
self.password = self.findChild(QLineEdit,"pwd")
self.connectbtn.clicked.connect(self.connect_cucm)
self.cancelbtn.clicked.connect(self.cancelfkt)
#self.ip_addr.setText("IP Adresse")
self.exec_()
print(self.ip_addr.text())
print(self.user_name.text())
print(self.password.text())
##print(self.CucmVersion.currenText())
def connect_cucm(self):
self.close()
def cancelfkt(self):
self.close()
##def ip(self):
#u = Dialog()
#print (u)
def main():
app = QApplication(sys.argv)
w = UI()
w.show()
app.exec_()
if __name__ == '__main__':
main()
Viele Grüße,
Stefan