2010-06-05 4 views
1

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

Один элемент имеет название, автор, описание и фото (постоянный размер)

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

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

Любые решения?

ответ

1

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

Второе: уточните.

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

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

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

+0

Я указал 200px, чтобы сказать, что невозможно иметь все элементы сразу. Я проверю виджет вкладки и уложенный виджет. – matiit

+0

Хорошо, я читаю. Но мне придется создавать динамическое количество страниц. Там не будет одной страницы, мне придется создавать все страницы, а через qstackedwidget показывать только один. Я хорошо понимаю это? – matiit

+0

Я не уверен, что я понимаю ваш комментарий, хороший LOL. Вы можете динамически добавлять/удалять любое количество страниц в QStackedWidget, вплоть до исчерпания памяти. Если у вас есть представление о том, сколько страниц вам нужно заранее, вы можете предварительно выделить страницы для уложенного виджета, прежде чем заполнять их данными. (Например, количество записей/# страницы = количество страниц для построения). Вы ничего не сказали о подробностях приложений, поэтому я не могу быть очень конкретным. – TerryP

Смежные вопросы