jak pobrać obecne wymiary labela ?
próbowałem
int h = labelFoto1P->height();
int h = labelFoto1P->width;
ale bez skutku
A skąd Ci się wzięło "height()" skoro to nie funkcja tylko zmienna?
Poza tym 2 właściwości chcesz zapisać do jednej zmiennej.
Nie znam Qt ale zakładając, że schrzaniłeś tylko te dwie rzeczy powinno by:
int h = labelFoto1P->height;
int g = labelFoto1P->width;
Zaraz po konstrukcji label nie ma jeszcze wymiaru.
QLayout
, który będzie zarządzał jego rozmiaremJeśli chcesz poznać optymalny rozmiar widget-a, to potrzebujesz użyć sizeHint
http://doc.qt.io/qt-5/qwidget.html#sizeHint-prop
Oj mój błąd przy pisaniu posta ... druga zmienna była" w" chodzi o to że wymiary labela ustalone w qteditor w kreatorze gui czy jakoś tak się on nazywa. A pobrać jego wymiary chce dlatego że po rozciągnięciu okna label zmienia wymiar rozciągając się z oknem
ozi_ns napisał(a):
Oj mój błąd przy pisaniu posta ... druga zmienna była" w" chodzi o to że wymiary labela ustalone w qteditor w kreatorze gui czy jakoś tak się on nazywa. A pobrać jego wymiary chce dlatego że po rozciągnięciu okna label zmienia wymiar rozciągając się z oknem
wywal go zatem z layoutu MainWindow to przestanie się rozciągać
no niby działa jakieś to rozwiązanie jest ale jeden minus... nie zachowuje wówczas proporcji. a chce wyświetlać obraz maksymalnie wielki ale zachować proporcje. dodam dalszą cześć kodu by wiadomo było o co mi chodziło
int w = labelFoto1P->height();
int h = labelFoto1P->width();
QPixmap img1("1.bmp");
QPixmap img2("2.bmp");
ui->labelFoto1P->setPixmap(img1.scaled(w,h,Qt::KeepAspectRatio));
ui->labelFoto1P->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
ui->labelFoto2L->setPixmap(img2.scaled(w,h,Qt::KeepAspectRatio));
ui->labelFoto2L->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
kiedyś napisałem layout, który utrzymuje aspect ratio dowolnego widget'a. Jak znajdę do pokaże (nie chce mi się pisać od nowa).
Pytanie, który kierunek ma być dominujący? Czy wysokość ma być dostosowana do szerokości (łatwe od zrobienia bo Qt w tym pomaga), czy na odwrót (trudniejsze)?
to drobny dodatkowy problem;/ zależy od obrazu otóż chce stworzyć coś takiego..
1)ktoś ze swoich zasobów wybiera sobie dowolne zdjęcie.
2)jest ono wczytywane i wyświetlane w tym labelu(znajduje się on w rogu okna) oraz dopasowuje się do wymiarów labela(maksymalny rozmiar zachowując proporcje)
chciałem pobierać wymiar labela by z KeepAspectRatio wyświetlać co raczej rozwiązało by problem
ozi_ns napisał(a):
2)jest ono wczytywane i wyświetlane w tym labelu(znajduje się on w rogu okna) oraz dopasowuje się do wymiarów labela(maksymalny rozmiar zachowując proporcje)
MarekR22 napisał(a):
który kierunek ma być dominujący? Czy wysokość ma być dostosowana do szerokości (łatwe od zrobienia bo Qt w tym pomaga), czy na odwrót (trudniejsze)?
Jeśli nie rozumiesz pytania to wstaw rysunek layout-a jaki zaprojektowałeś.
Tu wskazówka ze SO:
http://stackoverflow.com/a/24264774/1387438
jesli dobrze zrozumiałem to będzie szerokość ale na wszelki wypadek w załączniku
a tak na marginesie jeszcze jedno pytanko...
QPixmap img1("1.jpg");
if(img1.isNull())
img1=img1("brak.jpg");
jak osiągnąć coś tego typu? słownie:
QPixmap img1("1.jpg");
if(img1.isNull())
QPixmap img1("brak.jpg");
oraz
QPixmap img1("1.jpg");
if(img1.isNull())
img1("brak.jpg");
nie wiem jak zadeklarować ponownie by zmienić zawartość img1.