2012-08-29 34 views

Odpowiedz

18

show() jest tylko funkcja wygoda dla setVisible(true).

Podobnie hide() jest równoważna setVisible(false)

wewnętrznie, ten sam kod jest używany do renderowania widoku.

Zobacz przykład http://doc.qt.io/archives/qt-4.7/qwidget.html#show. Zgodnie z tym,

void QWidget :: show() [slot] Pokazuje widget i jego widżety podrzędne. Ta funkcja jest równoważna setVisible (true).

Znajdziesz wiele takich funkcji w Qt po prostu zrobić rzeczy bardziej intuicyjny, zwłaszcza jeśli chodzi o widgety i poglądów.

+4

Jest to tylko częściowo poprawne. Chociaż prawdą jest, że 'hide()' jest tym samym, co 'setVisible (false)', 'show()' robi więcej niż tylko ustawianie widoczności. W zależności od domyślnego stanu okna, ustawi stan okna (otrzymując powiadomienie o zmianie stanu okna), a _ then_ wywoła funkcję 'setVisible (true)'. – Dan

6

Nie ma różnicy. Są po prostu różnymi sposobami osiągnięcia tego samego. (Faktycznie setShown nie jest tak naprawdę częścią API, wygląda na to, że jest to sprawa kompatybilności z Qt 3, więc najlepiej nie używać).