QT4, нумерованные элементы - PullRequest
1 голос
/ 05 июня 2010

Я собираюсь написать приложение, которое использует QT4 (с C ++ или python это не важно в данный момент). Одной из функций является «Отображение всех элементов в базе данных».

Один предмет имеет название, автора, описание и фотографию (в постоянном размере)

И может быть очень много предметов. Скажем, 400. Недостаточно места, чтобы показать их всем одновременно. Одна строка будет иметь 200 пикселей, поэтому мне нужно максимум 4 за один раз.

Как их разбить на страницы? Я понятия не имею. Я могу использовать предел и смещение в запросах SQL, но как сказать окну: «это 5-я страница»?

Какие-нибудь решения?

1 Ответ

1 голос
/ 05 июня 2010

Во-первых, вы обычно не хотите использовать какую-либо вручную заданную ширину пикселя в любом приложении с графическим интерфейсом, если вы это делаете, ваш инструментарий отстой (или вы должны работать в разработке игры).

Второй выход: будьте более конкретны.

Вам нужно будет определить «страницу» для вашего приложения, а именно, какой должна быть страница в ее контексте. Я предполагаю, что это разбивает список элементов на отдельные страницы. Обычно это делается с помощью одного из классов представления (например, QListView или QTableView), чтобы позаботиться о большей части работы: она называется полосой прокрутки (не говоря уже о концепции свертывания папок из файловых менеджеров). Другой метод - это разделение информации по нескольким вкладкам (QTabWidget), где каждая страница отображает какой-либо вид (возможно, QTextView или один из классов представления M / V или Item).

То же самое можно сделать с помощью собственного стека виджетов и другого виджета для управления отображаемой в данный момент страницей. Это в основном то, как работают диалоги опций в клиенте TeamSpeak 3 и большинстве приложений KDE; это также, как мастера с кнопками назад / вперед работают в концепции. Я предлагаю вам взглянуть на этот пример диалогового окна конфигурации

Обычно вам требуется представление с полосой прокрутки и / или некоторой формой свертывания связанных записей в классифицированную информацию. Если вы просто хотите отобразить список страниц, каждая страница которых содержит X записей: используйте виджет tab * или составной виджет .

.
...