title image


Smiley Re: Leider ist Qt4 so neu, daß nur 1 handvoll Programmierer sich da auskenn
>Leider ist Qt4 so neu, daß nur 1 handvoll Programmierer sich da auskennen

>(und die sind anscheinend nur 1x im Jahr online



Ich benutze Qt4 zwar auch erst seit ein paar Monaten, aber da ich schon recht guten Einblick in C++ hab, ist mir das alles nicht so fremd. Im übrigen trifft die Beschreibung recht gut auf mich zu, ich schaue nur noch ab und zu hier ins Forum, hauptsächlich, wenn ich mal in den Bookmarks "daneben" klicke ;)



Zu deinem Problem:



dialog.h:





#ifndef MYDIALOG_H

#define MYDIALOG_H



#include "ui/ui_mydialog.h"



class CMyDialog : public QDialog, private Ui::MyDialog

{

Q_OBJECT



public:

CMyDialog (QDialog *parent = 0);



private slots:

void on_btnQuit_clicked();

};



#endif







dialog.cpp







#include "mydialog.h"



CMyDialog::CMyDialog(QDialog *parent)

: QDialog(parent)

{

setupUi(this);

/*add here more initial settings*/

}



void CMyDialog::on_btnQuit_clicked()

{

done(1);

}







den Aufruf würde ich vielleicht erstmal modal versuchen, nur um zu sehen, ob was geht:







CMyDialog myDlg;

myDlg.exec();







Das Ganze geht davon aus, daß aus dem ui-File mit dem UIC-Tool ein ui_mydialog.h erzeugt und in einen Unterordner /ui abgelegt wurde (kannst du ändern, wie's dir paßt). Die Methode weicht ein wenig von deiner ab, ist aber auch in der Doku beschrieben. Außerdem hat mein Dialog einen PushButton, der als btnQuit bezeichnet ist. Die Slot-Funktion on_btnQuit_clicked wird dann automatisch von Qt zur Verfügung gestellt, ohne eine separate Slot-Signal-Verbindung zu erzeugen (das geht mit nahezu allen Objekten und Nachrichten, also zB auch in einem Table mit on_myTable_itemClicked).

Ansonsten kann man Nachrichten auch direkt im Designer mit Objekten verbinden. Diese werden dann über das moc-File eingebunden und bedürfen ebenfalls keiner weiteren Definition. Man muß sich lediglich den Funktioninhalt noch schreiben.



Ob das jetzt direkt mit Copy&Paste so funktioniert, weiß ich nicht. Das ist alles aus einem bestehenden Projekt herausgerissen und auf das Wesentliche beschränkt. Das Prinzip sollte soweit aber korrekt sein.



Das ursprüngliche Problem würde ich dann lösen, indem ich einen PushButton "btnChange" und eine Textbox "editText" erstelle, einen Slot on_btnChange_clicked() hinzufüge der folgendermaßen aussieht:





void CMyDialog::on_btnChange_clicked()

{

editText.setText("Hello");

}





Und zum Abschluß noch eine etwas abweichende Meinung zum bisher Geäußerten: Ich verwende qmake überhaupt nicht, was den Vorteil hat, daß man zwar am Anfang etwas Trouble bekommt, jedoch auch einen etwas tieferen Einblick in das ganze System (besonders die moc-Files).

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: