[QT4]Dodatkowe okna
- Atom
- Sędziwy Jeż
- Posty: 45
- Rejestracja: 08 mar 2009, 12:44
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
[QT4]Dodatkowe okna
Witam
Chciałbym wykonać logowanie do mojego programu. Chciałbym by przed ukazaniem się okna głównego wyskoczyło małe okno logowania oraz możliwość stworzenia nowego okna. Okno główne już posiadam, lecz nie mam pojęcia jak wykonać te dodatkowe okno logowania. Czy ktoś by miał pomysł gdzie w kodzie umieścić owe okno i w jaki sposób wykonać takie rozwiązanie ?
Z góry dziękuję.
Chciałbym wykonać logowanie do mojego programu. Chciałbym by przed ukazaniem się okna głównego wyskoczyło małe okno logowania oraz możliwość stworzenia nowego okna. Okno główne już posiadam, lecz nie mam pojęcia jak wykonać te dodatkowe okno logowania. Czy ktoś by miał pomysł gdzie w kodzie umieścić owe okno i w jaki sposób wykonać takie rozwiązanie ?
Z góry dziękuję.
- kabanek
- Zakręcona Traszka
- Posty: 592
- Rejestracja: 23 cze 2009, 20:34
- Płeć: Mężczyzna
- Wersja Ubuntu: 13.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
trochę kreatywności...
czy coś w tym stylu... pisane z pamięci więc mogą być jakieś błędy
Kod: Zaznacz cały
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
LoginForm login;
MainWindow window;
login.exec();
if (login.correct())
window.show();
else
return 0;
return app.exec();
}
- Atom
- Sędziwy Jeż
- Posty: 45
- Rejestracja: 08 mar 2009, 12:44
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
No niestety kombinuje i nawet Twój pomysł nie za bardzo mi działa. Kombinuje na lewo i prawo.
- kabanek
- Zakręcona Traszka
- Posty: 592
- Rejestracja: 23 cze 2009, 20:34
- Płeć: Mężczyzna
- Wersja Ubuntu: 13.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
hmm.... Masz dwa okna. Jedno to okno główne a drugie to okno do logowania.
tam gdzie masz okno do logowania dodajesz 2 rzeczy:
zmienne prywatną
oraz metodę publiczną:
w pliku .cpp ją deklarujesz:
teraz w zdarzeniu onClick na guziku, który odpowiada za sprawdzanie hasła piszesz np coś takiego:
i w przeważającej większości main.cpp też Ci podałem
ps to jest takie bardzo proste podejście do tematu
tam gdzie masz okno do logowania dodajesz 2 rzeczy:
zmienne prywatną
Kod: Zaznacz cały
bool Correct;
Kod: Zaznacz cały
bool correct();
Kod: Zaznacz cały
bool LoginForm::correct()
{
return Correct;
}
Kod: Zaznacz cały
if (ui->lineText->text() == "login" && ui->lineText_2->text() == "tajneHaslo")
Correct = true;
else
Correct = false;
ps to jest takie bardzo proste podejście do tematu
- Atom
- Sędziwy Jeż
- Posty: 45
- Rejestracja: 08 mar 2009, 12:44
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
Ale ja mam problem z samym wywołaniem tego okna.
Dostaję ciągle taki błąd : a z resztą to ja sobie raczej poradzę.
Dostaję ciągle taki błąd :
Kod: Zaznacz cały
‘class logowanie’ has no member named ‘exec’
- kabanek
- Zakręcona Traszka
- Posty: 592
- Rejestracja: 23 cze 2009, 20:34
- Płeć: Mężczyzna
- Wersja Ubuntu: 13.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
a czy klasa logowanie dziedziczy po QDialog?
- Atom
- Sędziwy Jeż
- Posty: 45
- Rejestracja: 08 mar 2009, 12:44
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
Kod: Zaznacz cały
#ifndef LOGOWANIE_H
#define LOGOWANIE_H
#include <QWidget>
namespace Ui {
class logowanie;
}
class logowanie : public QWidget
{
Q_OBJECT
public:
explicit logowanie(QWidget *parent = 0);
~logowanie();
private:
Ui::logowanie *ui;
};
#endif // LOGOWANIE_H
-
- Sędziwy Jeż
- Posty: 30
- Rejestracja: 06 mar 2009, 14:22
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.10
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [QT4]Dodatkowe okna
może wywołaj wyświetlenie okienka do logowania przez użycie parametru "show" czyli np: "logowanie.show".
- Atom
- Sędziwy Jeż
- Posty: 45
- Rejestracja: 08 mar 2009, 12:44
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
Kod: Zaznacz cały
logowanie b;
b.show();
Widget w;
w.show();
return a.exec();
return b.exec();
- kabanek
- Zakręcona Traszka
- Posty: 592
- Rejestracja: 23 cze 2009, 20:34
- Płeć: Mężczyzna
- Wersja Ubuntu: 13.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
chyba wiem, gdzie jest błąd.
Stwórz jeszcze raz okno z logowaniem i wybierz "dialog without buttons" i wtedy spróbuj
Stwórz jeszcze raz okno z logowaniem i wybierz "dialog without buttons" i wtedy spróbuj
- Atom
- Sędziwy Jeż
- Posty: 45
- Rejestracja: 08 mar 2009, 12:44
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
Nic z tego to samo się dzieje.
Nadal mam takie błedy:
A czy jest to ważne takie coś jak system kontroli wersji i co to jest co to dokładnie kontroluje i jak to działa ? Za każdym razem daje na brak.
Nadal mam takie błedy:
Kod: Zaznacz cały
: In function ‘int main(int, char**)’:
‘class logowanie’ has no member named ‘exec’
- kabanek
- Zakręcona Traszka
- Posty: 592
- Rejestracja: 23 cze 2009, 20:34
- Płeć: Mężczyzna
- Wersja Ubuntu: 13.10
- Środowisko graficzne: Xfce
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
tutaj masz bardzo prosty przykład
- Załączniki
-
- dwaOkna.zip
- (9.72 KiB) Pobrany 95 razy
- beluosus
- Zakręcona Traszka
- Posty: 695
- Rejestracja: 01 paź 2006, 15:32
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Xfce
- Architektura: x86
- Kontakt:
Odp: [QT4]Dodatkowe okna
Drugi return nigdy się nie wykona, więc nie wiem po co go dajesz, zwłaszcza, że klasa logowanie nie posiada metody exec() (która w tym kontekście jest charakterystyczna dla QApplication). Masz zrobić tak jak kabanek napisał zaraz pod pierwszym postem (przy czym login ma dziedziczyć po QDialog).Atom pisze:W ten sposób wywołuję. To w takim razie z jakim parametrem wywoływać ?Kod: Zaznacz cały
logowanie b; b.show(); Widget w; w.show(); return a.exec(); return b.exec();
- Atom
- Sędziwy Jeż
- Posty: 45
- Rejestracja: 08 mar 2009, 12:44
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [QT4]Dodatkowe okna
Dziękuję kabanek już widzę gdzie robiłem błąd. Jeszcze raz dziękuję
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości