1/2 .Для отображения изображений и меток используйте QListWidget с режимом просмотра, установленным в QListView :: IconMode.Однако, если вам нужно настроить отображение сверх того, что может предоставить API QListWidget / QListWidgetItem, вам нужно будет создать свой собственный QAbstractListModel и использовать с ним стандартный QListView.Убедитесь, что прочитали учебник по Qt для модели / вида .
Что касается интервалов между изображениями, проверьте свойство spacing в представлении списка.
Вот пример из файлового менеджера KDE Dolphin:
3. Используйте обычный QLabel, но задайте для содержимого href.
Пример:
edit: К сожалению, из ваших тегов видно, что вы используете PyQt, ниже приведен код C ++, но он должен быть аналогичен тому, что вы делаете в python. 4. Ну, так как вы используете модель / вид, зачем вообще иметь номера страниц?Пользователь просто сможет прокрутить вид, и будет показано больше картинок.Это, безусловно, самое простое решение, так как вам не нужно ничего делать, когда вы настроили M / V!
Однако, если вы действительно хотите показывать номера страниц, это потребует дополнительной работы в вашей модели.Например, отслеживайте «текущую страницу» в модели и разрешайте доступ только к изображениям на «текущей странице».Затем в вашем слоте, подключенном к сигналу linkActivation (), скажите модели сменить страницу.Я не буду вдаваться в подробности, поскольку это серьезно нарушает всю идею модели / вида.«Правильный способ» сделать это - создать подкласс QListView и добавить поддержку разбиения на страницы, но, как я уже сказал, почему бы не использовать полосы прокрутки?При этом производительности не будет.
5. Используйте QStackedWidget , добавьте к нему все свои "страницы", затем вызовите setCurrentIndex /Виджет (), необходимый для переключения страниц.
Мысли : Кажется, вы очень привержены клонированию внешнего вида, поведения и поведения поиска картинок Google, что хорошо, но GoogleПоиск изображений - это веб-приложение, использующее парадигмы взаимодействия, которые сильно отличаются от обычных приложений для настольных компьютеров (ссылки, страницы и т. Д.).Предположительно вы разрабатываете настольное приложение, и, пытаясь эмулировать поведение веб-приложения, вы столкнетесь с трудностями, поскольку API просто не предназначен для поддержки такого рода взаимодействий.Безусловно, это выполнимо, но вы получите свою работу за вас.
Если вы крайне хотите придерживаться стиля веб-взаимодействия, почему бы не кодировать свое приложение в javascript и HTML ибросить его в QWebView ?