Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[QT, C++] W jaki sposób z poziomu klasy dialogu odwołać się do klasy bazowej?

Ostatnio zmodyfikowano 2010-08-26 15:08
Autor Wiadomość
markon
Temat założony przez niniejszego użytkownika
» 2010-08-25 21:37:39
właśnie tak wczoraj próbowałem, ale otrzymywałem błąd
parent->ui->statusBar->showMessage(""); //konstruktor klasy dialog

error: 'class QWidget' has no member named 'ui'
P-21240
DejaVu
» 2010-08-25 21:56:22
To znaczy, że ta klasa nie ma zmiennej ui :)
P-21242
markon
Temat założony przez niniejszego użytkownika
» 2010-08-25 22:10:24
właśnie w tym problem że ma
mainwindow.h
private: // jak dam do public to samo
    Ui::MainWindow *ui;
P-21243
DejaVu
» 2010-08-26 00:10:10
Jak by zmienna istniała to by waliło komunikatem 'cannot access private member'. Być może używasz nazwy klasy bazowej zamiast klasy pochodnej jeżeli stosujesz dziedziczenie. Dodam też, że do membera private nie powinieneś odwoływać się bezpośrednio tylko poprzez metody (o ile takie istnieją).
P-21247
markon
Temat założony przez niniejszego użytkownika
» 2010-08-26 11:45:46
do klasy MainWindow wrzuciłem publiczną metodę - z poziomu konstruktora klasy dialog
nie widać jej. natomiast jeśli wywołam metodę close: parent->close(); //aplikacja zostanie zamknięta - czyli dla metoda close działa
"Być może używasz nazwy klasy bazowej zamiast klasy pochodnej jeżeli stosujesz dziedziczenie."
a dokładniej? bo nie bardzo rozumiem
pozdrawiam,
markon
P-21263
DejaVu
» 2010-08-26 14:33:22
C/C++
class MojeBle
    : public QWidget
{
};

class CDialog
{
    CDialog( MojeBle * bla );
    //CDialog(QWidget* bla); <= Ty to masz, więc nie widzi niczego z MojeBle
};
P-21271
markon
Temat założony przez niniejszego użytkownika
» 2010-08-26 15:08:29
faktycznie, teraz widzi
dołączyłem mainwindow.h, a następnie Dialog(MainWindow *parent)
teraz mogę odwołać się do metody, którą wcześniej pisałem w klasie MainWindow.
wielkie dzięki za pomoc :)
pozdrawiam,
markon

//edit
otwieram bo mam inny błąd, teraz jest inny problem, a mianowicie
C/C++
// dialog.h
Dialog( MainWindow * parent = 0 );
C/C++
//dialog.cpp
Dialog::Dialog( MainWindow * parent )
    : QDialog( parent )
    , ui( new Ui::Dialog )
error: expected ')' before '*' token
nie wiem jak poradzić sobie z tym błędem, czego on w ogóle dotyczy?
P-21273
1 « 2 »
Poprzednia strona Strona 2 z 2