QT4 in Verbindung mit Objekt und QT Designer



  • Hallo Zusammen,

    ich entwickle meine Anwendung mit dem QT Designer.

    Ich setze zusätzliche die QWT Lib und versuche
    derzeit den Wert des Objekts zu ändern.

    Dies mache ich mit

    So verwendet ich die Zuweisung in der Routine
    void	MainWindow::UpdateScreens(QString StringName, QString Value)
    {
    float		temp;
    
       temp =  Value.toFloat() *  0.1 ;
       ui.VoltageDisplay->setValue( temp );		break;
    }
    
    // Definition der Klasse
    
    class MainWindow :  public QMainWindow
     {
         Q_OBJECT												// Def. wird für moc benötigt
    
    public:
        MainWindow();											// Loadroutine überladen
    
     private slots:												// Slots für Ereignisse des Fenster
    	void  	Info_about();									// Info Box , Programm 
    	void		Info_qt();											// Info Box, qt Meldung
    	void  	File_Exit();										// Programm wird beendet
    
    	void		UpdateScreens(QString Name, QString Value);
    	void		InitHashTable();							// Kommando nach Zahl Tabelle
    
    	void		CommunicationTimer();				// Datenübertragung
    	void		TCPIPConnected();						// Verbindung aufgebaut
    	void		TCPIPDisConnected();				// Verbindung abgebrochen
    
    	void		TCPIPReadRobyData();				// Lese Daten von Roby
    	void		TCPIPDisplayError(QAbstractSocket::SocketError socketError);	// Fehlermeldung
    
     private:
    	Ui::MainWindow ui;									// Fenster Objekt, für QT Designer
    
    	QTcpSocket *tcpSocket;							// Datenübertragungsobjekt für Socket Verbindung
    	QString		IPAddress;								// IP Adresse der Verbindung
    	quint16		Port;										// Portadresse der Verbindung
    	int				Connected;							// Verbindung vorhanden
    	int				WaitingForData;					// Warte auf Antwort vom Server (syncrone Verb.)
    	QHash<QString, int> hashTable;			// Codetabelle fuer die Kommandos
     };
    

    Hier noch der Constructor:

    / **************************************************************************
    //  Init des Fensters
    // **************************************************************************
    
    MainWindow::MainWindow()
    {
    	Ui::MainWindow   ui;
    	ui.setupUi(this);
    
    // Datenübertragungstimer konfiguieren
    
    	QTimer *timer = new QTimer(this);
    	timer->start(5000);											// Update rate 5000 ms
    	connect(timer, SIGNAL(timeout()), this, SLOT(CommunicationTimer()));
    
    // Menue Slots setzen
    
        ui.actionQuit->setStatusTip(tr("Beendet das Programm"));
    	connect( ui.actionQuit , SIGNAL(triggered()), this, SLOT(File_Exit()));
        ui.action_aboutProgram->setStatusTip(tr("Zeigt Version Info des Programms an"));
    	connect( ui.action_aboutProgram , SIGNAL(triggered()), this, SLOT(Info_about()));
        ui.action_aboutQT->setStatusTip(tr("Zeigt Version Info der QT Version an"));
    	connect( ui.action_aboutQT , SIGNAL(triggered()), this, SLOT(Info_qt()));
    
    // TCP/IP Variablen vorbereiten
    
    	IPAddress="192.168.5.200" ;
    	Port = 7;
    
    	tcpSocket = new QTcpSocket(this);
    
    	Connected=false;
    	WaitingForData=false;
    
    // TCP / IP Slots setzen
    	connect(tcpSocket, SIGNAL(connected()), this, SLOT(TCPIPConnected()));
    	connect(tcpSocket, SIGNAL(disconnected()), this, SLOT(TCPIPDisConnected()));
    	connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(TCPIPReadRobyData()));
    	connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(TCPIPDisplayError(QAbstractSocket::SocketError)));
    
    	InitHashTable();
    
    	statusBar()->showMessage(tr("Ready ..."));
    	tcpSocket->connectToHost(IPAddress, Port );
    }
    

    Nur leider Crashed die Anwendung bei dieser Zeile.
    Ich vermute eine falsche Methode für das Ändern der Eigenschaft von irgend einem Objekt aus der Form. 😞

    Was mache ich hier falsch ?

    Gruss


Anmelden zum Antworten