Найти - Пользователи
Полная версия: PyQt4 QAbstractItemModel - функции-члены
Начало » GUI » PyQt4 QAbstractItemModel - функции-члены
1 2
Ginibe
пока только один вопрос
“глубокие” познания многозначительности лаконичного анлийского, на данном этапе изучения, никак не дают разобраться что же такое в понимании Qt делает функия buddy(const QModelIndex & index), кроме того что возвращает индекс элемента модели.
вернее - как понимать это buddy в интерпретации Qt ?
если у кого то хватит терпения объяснять, прошу - попроще, ну скажем … ассоциациями кухарок, а то в доках TROLLTECH уж очень все лаконично …

пока никто не откликнулся … вот кое что:
QT 4: программирование GUI на С++(http://lib.rus.ec/b/180308/read)
“Партнером (buddy) называется виджет, на который передается фокус при нажатии клавиши быстрого доступа текстовой метки.”
… но в тексте речь шла о форме модели и в контексте C++, там все по ссылкам, это мне как то понятно, а вот в контексте Питона, что имеется в виду под index, который возвращает buddy ?
… что-то упустил в ИНДЕКСАХ …
dartNNN
buddy - приятель. Для начала переведу документацию
Returns a model index for the buddy of the item represented by index. When the user wants to edit an item, the view will call this function to check whether another item in the model should be edited instead. Then, the view will construct a delegate using the model index returned by the buddy item.

The default implementation of this function has each item as its own buddy.
Возвращает индекс модели buddy для элемента чей индекс передан параметром. Когда пользователь захочет отредактировать элемент, view (представление) вызывет эту функцию, чтобы проверить должен ли быть отредактирован другой элемент этой модели. Тогда view создаст делегат, используя индекс buddy элемента.
По умолчанию каждый элемент является собственным buddy.

В примере в книге не вижу особой разницы с питоном. Суть в том, что автор для label задает клавишу быстрого доступа и делает lineEdit товарищем label. Т.е. когда юзер захочет “отредактировать” label (поставить его в фокус, нажав Alt-F), то он будет редактировать lineEdit. Вот такой вот извращенный способ задать клавишу быстрого доступа к lineEdit :-)
doza_and
Сразу скажу - несколько не в тему.
1 Друг Ginibe помоему вы дали ссылку которая требует регистрации на Либрусеке, а она не у всех есть. Лучше уж с торрента взять наверное? http://www.2torrents.ru/torrent2/110953005/gasmin-blanshet-mark-sammerfild-qt-4-programmirovanie-gui-na-s-per-s-angl-obraz-kompakt-diska-2007-chm
2 Интересно узнать как движется ваша разработка ERP системы. Довольны Qt? Какое решение с DB?
Ginibe
doza_and спсибо за внимание
по порядку:
1 – ссылку на Либрусек получил у Гугла, никаких регистраций не требовалось, за ссылочку на торент отдельное мерси.
2 – Qt пробовал, написал пару сервисных примочек и решил для себя что пользоваться Qt-дизайнером накладно, вручную проще и понятнее, с DB - пробовал коннектится с разными базами через Алхимию, все Ок, к сожалению Алхимия сейчас не поддерживает DB MSAcces, использовал сторонние библиотеки, единственное приходится все время контролировать перекодировки, до разработки самой системы еще не добрался.

dartNNN - спасибо, Вы подтведили мои догадки, копаю дальше …
doza_and
Чтото не пойму, зачем вам движек MSAcces? может надо было перезалить еще во чтото?
Ginibe
старую базу я написал на Акцесе, в т.ч. и клиентские интерфейсы, народ резко пересадить на новое НИЗЗЯ, ПАТАМУША работе будет капец
чувствую что переходить придется долго и нудно, поэтому на первых парах придется юзать и файлы БД Акцеса

кста … а моежет в курсе почему не переводят Class Reference из документации по PyQt ?

объем смущает | слишком специфично и требует практики использования | заморочки автора документации ??? или еще что-то ?

жаль конечно, но мне иняз дается с трудом, потому ищу переводы
doza_and
не знаю про перевод, Мне почти все равно английский или русский. Сами сидим на wx, может это и недальновидно, но gui у нас очень маленькая часть. Так вообще интересно было-бы сравнить скорость разработки на Qt и wx. Билдерами форм пользуемся, но для простых формочек.
Ginibe
doza_and
Так вообще интересно было-бы сравнить скорость разработки на Qt и wx.
…оооо братцы, тогда вам придется долго и нудно ждать кагда я, возможно, осилю wx ;)

хотел попытать мнения dartNNN о следующем:
в доках ривербанка при описании класса QAbstractItemModel идет речь о так называемых ролях данных (или данные ролей … полный, пока что, каламбур для меня), скажем … цитата:
Each item has a number of data elements associated with it and they can be retrieved by specifying a role (see Qt.ItemDataRole) to the model's data() function. Data for all available roles can be obtained at the same time using the itemData() function.
Так что имеется в виду под “role”, то ли это особое место среди кучи данных, то ли это какая то функциональность особая и вообще, как понимать это в контексте PyQt, как это звучит на сленге питона ?
doza_and
:)
Ginibe
тогда вам придется долго и нудно ждать кагда я, возможно, осилю wx
Не надо таких жертв. Лучше мы тогда Qt освоим.
dartNNN
Ginibe
Так что имеется в виду под “role”
Смотрим в документации Qt.ItemDataRole и видим:

Each item in the model has a set of data elements associated with it, each with its own role. The roles are used by the view to indicate to the model which type of data it needs.

Каждый item имеет коллекцию элементов данных, каждый из которых имеет свою роль. Роли используются представлением для определения какие данные нужны в данный момент.

Например роль по умолчанию
Qt.DisplayRole - The key data to be rendered in the form of text. (QString)
данные для отображения, если заглянешь в документацию, то увидишь там роли для редактирования (данные с этой ролью будут отображаться при редактировании), отображения ToolTip и много других интересных и непонятных)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB