Skocz do zawartości

Qt4, A Wyświetlanie Wielu Okien


Snaqu

Rekomendowane odpowiedzi

Witam!

 

Otóż nie potrafię wyświetlić nowego okna które stworzyłem poprzez przycisk pushButton. Próbowałem sposobu poprzez np. Okno_dodaj.show() lecz to także nie działało. Niby includowałem pliki, które zawierają deklaracje okien itd. lecz kicha. Czy ktoś by mógł nakierować na właściwą drogę? Nie chcę gotowego rozwiązania lecz wskazanie właściwej drogi. Projekt do wglądu poniżej (używam QT Creator'a)

 

http://dl.getdropbox.com/u/1402090/test123.tar.gz

 

Dopiero zaczynam przygodę z QT4 więc proszę o zrozumienie.

Odnośnik do komentarza
Udostępnij na innych stronach

Hmmm...

Bardzo chciałbym Cię naprowadzić (wędka, wędka, wędka! ryby śmierdzą :rolleyes: ), ale nie za bardzo wiem jak. Przydałaby się lepsza znajomość C++, napiszę krótki opis, mam nadzieję, że niezbyt zagmatwany i mimo wszystko podam gotowy kod, nie musisz go czytać jeśli nie chcesz...

 

Na początek... musisz mieć co pokazywać. Do sygnału click() musisz przyłączyć funkcję pokazującą okno, zadeklarowałeś ją prawidłowo. Funkcja on_pushButton_clicked() zostanie wywołana po naciśnięciu przycisku.

Jeśli chcesz wyświetlić okno (rozumiem, że reprezentowane przez klasę Dodaj_Okno), musisz jednak utworzyć jego instancję. Poprawiony kod:

 

mainwindow.h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include "okno_dodaj.h"

namespace Ui
{
   class MainWindow;
}

class MainWindow : public QMainWindow
{
   Q_OBJECT

public:
   MainWindow(QWidget *parent = 0);
   ~MainWindow();

private:
   Ui::MainWindow *ui;
   Okno_dodaj *okno;                      // Deklaracja wskaźnika do obiektu


private slots:
   void on_pushButton_clicked();
};

#endif // MAINWINDOW_H

 

mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "okno_dodaj.h"

MainWindow::MainWindow(QWidget *parent)
   : QMainWindow(parent), 
     ui(new Ui::MainWindow)
{
   ui->setupUi(this);

   okno = new Okno_dodaj();                // Alokacja
}

MainWindow::~MainWindow()
{
   delete ui;
}

void MainWindow::on_pushButton_clicked()
{
 okno->show();                              // Pokazujesz
}

Odnośnik do komentarza
Udostępnij na innych stronach

Thx,

wiem, że mój c++ nie jest jeszcze zbyt dobrze opanowany, a w szczególności obiekty, ale do rzeczy. Próbowałem najpierw wg. twoich wskazówek lecz zapomniałem zadeklarować, tak jak ty napisałeś w przykładnie "Deklaracja wskaźnika do obiektu". Ale po spojrzeniu na twój kod udało się =)

 

Wielkie dzięki za pomoc!

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...