qt

Description: Разработка и отладка приложений. Упор на 3D-графику.

dyvniy M
Topic author, Администратор
Администратор
Avatar
dyvniy M
Topic author, Администратор
Администратор
Age: 36
Reputation: 1
Loyalty: 1
Posts: 3091
Joined: Wed, 10 Oct 2012
With us: 6 years 6 months
Профессия: Программист
Location: Россия, Москва
ICQ Website Skype VK

#43by dyvniy » Thu, 4 Feb 2016, 17:41:55

Про QModelIndex
http://webhamster.ru/mytetrashare/index/mtb0/1392580691nchkxju7yz
"Родители, строки и столбцы" - интересное место
Spoiler
Родители элементов

Таблицеподобный интерфейс к элементам данных, предоставляемый моделью, идеален при использовании данных в представлениях в виде таблицы или списка; система номеров строк и столбцов точно указывает способ отображения представлениями элементов. Однако, структуры, подобные представлению дерева, требуют более гибкого интерфейса к элементам. В результате, каждый элемент также может быть родителем другой таблицы элементов, почти также, как элемент верхнего уровня в представлении дерева может вмещать в себя список других элементов.

При запросе индекса элемента модели, мы должны предоставить некоторую информацию о родительском элементе. Единственным способом обращения к элементу вне модели является модельный индекс, так что модельный индекс родителя также должен быть известен:

QModelIndex index = model->index(row, column, parent);






Родители, строки и столбцы
Диаграмма показывает представление модели дерева, в которой каждый элемент определяется родителем, номером строки и номером столбца.

Элементы "A" и "C" представлены как верхнеуровневые элементы модели:

QModelIndex indexA = model->index(0, 0, QModelIndex());
QModelIndex indexC = model->index(2, 1, QModelIndex());
Элемент "A" имеет множество дочерних объектов. Модельный индекс элемента "B" может быть получен с помощью следующего кода:

QModelIndex indexB = model->index(1, 0, indexA);


Роли элемента

Элементы модели могут выполнять различные роли для других компонентов, позволяя в различных ситуациях получать различные виды данных. Например, Qt::DisplayRole используется для доступа к строке, которая может отображаться в представлении как текст. Как правило, элементы содержат информацию для нескольких различных ролей, а стандартные роли определяются с помощью Qt::ItemDataRole.

Мы можем запросить у модели информацию об элементе, передав ей модельный индекс, соответствующий элементу и задав роль для получения данных желаемого типа:

QVariant value = model->data(index, role);




Роли элемента
Роль указывает модели, данные какого типа будут переданы. Представления могут отображать роли различными способами, поэтому важно обеспечить информацию, соответствующую каждой роли.

Раздел "Создание новых моделей" более подробно описывает несколько необычное использование ролей.

Наиболее частые способы использования элементов данных описываются стандартными ролями, определенными в Qt::ItemDataRole. Снабжая элемент данных информацией для каждой роли, модель может предоставить предпочтения для отображения элемента пользователю представлениями и делегатами. Различные виды представлений имеют возможность интерпретировать эти данные или игнорировать эту информацию, если требуется. Также имеется возможность определять дополнительные, специфические для приложения, роли.

Image

dyvniy M
Topic author, Администратор
Администратор
Avatar
dyvniy M
Topic author, Администратор
Администратор
Age: 36
Reputation: 1
Loyalty: 1
Posts: 3091
Joined: Wed, 10 Oct 2012
With us: 6 years 6 months
Профессия: Программист
Location: Россия, Москва
ICQ Website Skype VK

#44by dyvniy » Thu, 3 Mar 2016, 15:16:48

Автоудаление QObject и QSharedPointer
http://blog.codef00.com/2011/12/15/not-so-much-fun-with-qsharedpointer/
Image

dyvniy M
Topic author, Администратор
Администратор
Avatar
dyvniy M
Topic author, Администратор
Администратор
Age: 36
Reputation: 1
Loyalty: 1
Posts: 3091
Joined: Wed, 10 Oct 2012
With us: 6 years 6 months
Профессия: Программист
Location: Россия, Москва
ICQ Website Skype VK

#45by dyvniy » Thu, 3 Mar 2016, 15:28:52

QObject::connect( &test1, &Test::sig2, &test2, &Test::onSlot , Qt::QueuedConnection );
Qt::AutoConnection
(Default) If the receiver lives in the thread that emits the signal, Qt::DirectConnection is used. Otherwise, Qt::QueuedConnection is used.
The connection type is determined when the signal is emitted.
Image

dyvniy M
Topic author, Администратор
Администратор
Avatar
dyvniy M
Topic author, Администратор
Администратор
Age: 36
Reputation: 1
Loyalty: 1
Posts: 3091
Joined: Wed, 10 Oct 2012
With us: 6 years 6 months
Профессия: Программист
Location: Россия, Москва
ICQ Website Skype VK

#46by dyvniy » Thu, 3 Mar 2016, 15:40:31

atomic
http://doc.qt.io/qt-5/atomic-operations.html
QAtomicInt and QAtomicPointer. POD (plain-old-data)
Image

dyvniy M
Topic author, Администратор
Администратор
Avatar
dyvniy M
Topic author, Администратор
Администратор
Age: 36
Reputation: 1
Loyalty: 1
Posts: 3091
Joined: Wed, 10 Oct 2012
With us: 6 years 6 months
Профессия: Программист
Location: Россия, Москва
ICQ Website Skype VK

#47by dyvniy » Mon, 29 Aug 2016, 23:58:47

Image

dyvniy M
Topic author, Администратор
Администратор
Avatar
dyvniy M
Topic author, Администратор
Администратор
Age: 36
Reputation: 1
Loyalty: 1
Posts: 3091
Joined: Wed, 10 Oct 2012
With us: 6 years 6 months
Профессия: Программист
Location: Россия, Москва
ICQ Website Skype VK

#48by dyvniy » Thu, 22 Sep 2016, 00:56:18

Code: Select all

int cSHUtilsTest:: dateTinrie2UnixTinriestamp (const QDateTirneS dt)
{
return 
QDateTirne (QDate (197011) , QTime (000), Qt::UTC).secsTo(dt.toUTC());
}
QDateTirne cSHUtilsTest: : unixTinriestamp2DateTii«e (int uts)
{
return 
QDateTirne (QDate (197011), QTirne (000), Qt: : UTC) . addSecs (uts) . toLocalTime () ;
Image


Forum name: Программирование (под Desktop и Android)
Description: Разработка и отладка приложений. Упор на 3D-графику.

Quick reply


Enter the code exactly as it appears. All letters are case insensitive.
Confirmation code
:) ;) :hihi: :P :hah: :haha: :angel: :( :st: :_( :cool: 8-| :beee: :ham: :rrr: :grr: :* :secret: :stupid: :music: View more smilies
   

Return to “Программирование (под Desktop и Android)”

Who is online (over the past 15 minutes)

Users browsing this forum: 1 guest