• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Qt - ruchy ekranu po naciśnięciu strzałek

Object Storage Arubacloud
0 głosów
128 wizyt
pytanie zadane 2 marca 2017 w C i C++ przez Cirt Początkujący (300 p.)
zamknięte 2 marca 2017 przez draghan

Cześć, w Qt  po utworzeniu widoku gdy nacisnę, którąś ze strzałek ekran porusza się minimalnie w którąś stronę (ale maksymalnie raz w jedną stronę). To samo zjawisko występowało ze scrollem jednak z tym sobie poradziłem używając:

    horizontalScrollBar()->setEnabled(false);
    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    verticalScrollBar()->setEnabled(false);
    setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

Problem z przyciskami ewidentnie powiązany jest z metodą keyPressEvent() i ustawianiem focus na jakiś obiekt. Problem występuje tylko w menu, ponieważ tam nie ustawiłem jeszcze na żaden obiekt focus. Rozwiązałem to w ten sposób, że w przycisku przeciążyłem metodę keyPressEvent() i dałem focus na jeden z przycisków. Nie jest to najbardziej eleganckie rozwiązanie, a więc moje pytanie brzmi: czy jest możliwość rozwiązania tego problemu lepiej niż ja to zrobiłem? Jest to kosmetyczny problem, ale jestem ciekawy czy da się go rozwiązać lepszym sposobem.

komentarz zamknięcia: Autor rozwiązał problem.
komentarz 2 marca 2017 przez tangarr Mędrzec (154,780 p.)
To co napisałeś jest bardzo enigmatyczne.
Nie do końca wiadomo co się rusza (możliwości: zawartość kontrolki/widgeta, kontrolka wewnątrz okna, okno programu, ekran komputera/laptopa (to najbardziej pasuje do twojego opisu)).
Podaj więcej szczegółów. Zacznij od tego na jakim widgecie wykonałeś wspomniane funkcje, oraz jakie eventy przeciążyłeś.
komentarz 2 marca 2017 przez Cirt Początkujący (300 p.)
Wygląda na to, że problem rozwiązałem, ale jeśli chodzi o to co się rusza to, porusza się tak naprawdę cały ekran w taki sposób jakbym używał scrolla (wszystko się po prostu przewija dopóki nie ustawię focusa na jakiś obiekt).

Wygląda na to, że QGraphicsView był trochę za duży i dlatego istniała możliwość przewijania.

1 odpowiedź

0 głosów
odpowiedź 2 marca 2017 przez Cirt Początkujący (300 p.)
Jakby ktoś szukał odpowiedzi to znalazłem inne rozwiązanie. Z jakiegoś powodu QGraphicsView jest trochę za duży dlatego możliwe jest przewijanie. Wystarczy dla QGraphicsView użyć metody setSceneRect() z wielkościami o kilka pikseli mniejszymi niż dla metody setFixedSize(). To rozwiązuje problem.

Podobne pytania

+1 głos
1 odpowiedź 377 wizyt
pytanie zadane 4 listopada 2017 w C i C++ przez Eliro Stary wyjadacz (12,160 p.)
0 głosów
1 odpowiedź 185 wizyt
pytanie zadane 1 maja 2017 w C i C++ przez Cirt Początkujący (300 p.)
–1 głos
0 odpowiedzi 114 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...