Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Gui unter QT programmieren...

  1. #1
    Registrierter Benutzer
    Registriert seit
    05.10.2004
    Beiträge
    27

    Gui unter QT programmieren...

    Habe ne Applikation die aus nem mainFrame mit diversen Buttons etc. besteht, und mit einem Haupt-Frame, in der Mitte des Bildschirms.


    Nun will ich es schaffen, das , wenn man nen bestimmten slot aktiviert, also button drückt z.b. sich ein neuer Doalog, (also ne *.ui-datei) innerhalb des mainFrames in diesem bestimmten Bereich öffnet.


    Wie geht das ?

  2. #2
    Registrierter Benutzer
    Registriert seit
    30.08.2004
    Beiträge
    10
    Das sollte ungefähr so gehen:

    QObject::connect(pointerAufDeinenButton, SIGNAL(clicked()),
    pointerAufdasFrameWoDasPassierenSoll,
    SLOT(deinLustigerSlotderdenDialogStartet()));

    am besten ist wenn dein anderes Fenster ne eigene Klasse ist:

    z.B.
    Code:
    class myFrame : public QFrame {
       ...
       ....
    public slots:
       void createDialog();
    };
    
    ....
    ....
    int main int argc, char* argv[])
    {
       ....
       ....
         QWidget *mainWin=new QWidget;
         myFrame *myFrame=new myFrame(NULL);
         ....
        QButton *mybutton=new QButton("Click me",mainWin);
        QObject::connect(mybutton, SLOT(clicked(), myFrame, createDialog());
    }
    Aber was du mit *.ui meinst weiss ich nicht.

    Gruss
    paines

  3. #3
    Registrierter Benutzer
    Registriert seit
    05.10.2004
    Beiträge
    27
    das hatte ja jetzt geklappt mit dem widget, aber nun brauche ich noch den Fall, dass ich nicht wie bisher, alles in dem Hauptframe unter qt programmiere, sondern meine einzelnen Fenster für das widget extra dialoge sind, die ich unter qt erstelle, und als eigene Klasse dann habe.

    wie stelle ich das denn an ?

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wenn du die .ui Dateien direkt laden willst, musst du die QWidgetFactory benutzen.

    Ansonsten einfach die jeweilige Klasse instanziieren.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    05.10.2004
    Beiträge
    27
    wie,jetzt nicht mehr mitm QWidgetStack ? Dachte da sman da vllt. mit addWidget Objekte von dem Dialoge hinzufügen kann oder so ?

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Doch, schon.

    Der Stack ist nur ein Container, damit man mehrer Widgets alterantiv anzeigen kann.

    Die Frage ist, willst du diese Widgets laden, also direkt zur Laufzeit aus der .ui Datei erstellen, oder hast du eine kompilierte Klasse, wo also uic aus der. ui Datei Code generiert hat.

    Im ersten Fall erzeugst man das Widget eben über die QWidgetFactory, im zweiten Fall über ganz normale Instanziierung mit "new"

    In beiden Fällen kann man dann das erzeugte Widget mit addWigdet in einen WidgetStack geben.

    In beiden Fällen gilt, wenn das Widget in einem anderen Widget eingebettet sein soll und kein eigenes Fenster werden soll, dann darf man im Designer nicht Dialog als Basis wählen, weil ein Dialog per Definition nunmal ein eigenständiges Fenster ist.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •