<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.trinitydesktop.net/index.php?action=history&amp;feed=atom&amp;title=Displaying_large_amounts_of_data_%28KDE3_Architecture%29</id>
	<title>Displaying large amounts of data (KDE3 Architecture) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.trinitydesktop.net/index.php?action=history&amp;feed=atom&amp;title=Displaying_large_amounts_of_data_%28KDE3_Architecture%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;action=history"/>
	<updated>2026-05-25T00:48:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.13</generator>
	<entry>
		<id>https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;diff=2206&amp;oldid=prev</id>
		<title>Blu256: -Applicable to TDE (redundant), categories to bottom</title>
		<link rel="alternate" type="text/html" href="https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;diff=2206&amp;oldid=prev"/>
		<updated>2022-04-21T15:33:49Z</updated>

		<summary type="html">&lt;p&gt;-Applicable to TDE (redundant), categories to bottom&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:33, 21 April 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 138:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 138:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;== Special Settings of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;QIconView&lt;/del&gt; ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;== Special Settings of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;TQIconView&lt;/ins&gt; ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;{{TODO}}&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;{{TODO}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key mwdb:diff:wikidiff2:1.12:old-2205:rev-2206:1.13.0 --&gt;
&lt;/table&gt;</summary>
		<author><name>Blu256</name></author>
	</entry>
	<entry>
		<id>https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;diff=2205&amp;oldid=prev</id>
		<title>Blu256: -Applicable to TDE (redundant), categories to bottom</title>
		<link rel="alternate" type="text/html" href="https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;diff=2205&amp;oldid=prev"/>
		<updated>2022-04-21T15:33:42Z</updated>

		<summary type="html">&lt;p&gt;-Applicable to TDE (redundant), categories to bottom&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:33, 21 April 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-left&quot; title=&quot;Paragraph was moved. Click to jump to new location.&quot; href=&quot;#movedpara_2_1_rhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_0_0_lhs&quot;&gt;&lt;/a&gt;[[Category:KDE3]]&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-left&quot; title=&quot;Paragraph was moved. Click to jump to new location.&quot; href=&quot;#movedpara_2_2_rhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_0_1_lhs&quot;&gt;&lt;/a&gt;[[Category:Architecture]]&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-left&quot; title=&quot;Paragraph was moved. Click to jump to new location.&quot; href=&quot;#movedpara_2_3_rhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_0_2_lhs&quot;&gt;&lt;/a&gt;[[Category:Developers]]&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;{{Applicable to TDE}}&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;== Introduction ==&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;In most of the cases it&#039;s quite obvious how to use these three classes and display data in it. But&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;In most of the cases it&#039;s quite obvious how to use these three classes and display data in it. But&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;when it comes to displaying larger amount of data it helps a lot if the programmer knows how&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;when it comes to displaying larger amount of data it helps a lot if the programmer knows how&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 161:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 154:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;Initial Author:&#039;&#039; [mailto:reggie@kde.org Reginald Stadlbauer]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;Initial Author:&#039;&#039; [mailto:reggie@kde.org Reginald Stadlbauer]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-right&quot; title=&quot;Paragraph was moved. Click to jump to old location.&quot; href=&quot;#movedpara_0_0_lhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_2_1_rhs&quot;&gt;&lt;/a&gt;[[Category:KDE3]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-right&quot; title=&quot;Paragraph was moved. Click to jump to old location.&quot; href=&quot;#movedpara_0_1_lhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_2_2_rhs&quot;&gt;&lt;/a&gt;[[Category:Architecture]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-right&quot; title=&quot;Paragraph was moved. Click to jump to old location.&quot; href=&quot;#movedpara_0_2_lhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_2_3_rhs&quot;&gt;&lt;/a&gt;[[Category:Developers]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key mwdb:diff:wikidiff2:1.12:old-1683:rev-2205:1.13.0 --&gt;
&lt;/table&gt;</summary>
		<author><name>Blu256</name></author>
	</entry>
	<entry>
		<id>https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;diff=1683&amp;oldid=prev</id>
		<title>Blu256: Updated article for TDE, images as gallery, little formatting fixes</title>
		<link rel="alternate" type="text/html" href="https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;diff=1683&amp;oldid=prev"/>
		<updated>2021-08-22T20:26:22Z</updated>

		<summary type="html">&lt;p&gt;Updated article for TDE, images as gallery, little formatting fixes&lt;/p&gt;
&lt;a href=&quot;https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;amp;diff=1683&amp;amp;oldid=271&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Blu256</name></author>
	</entry>
	<entry>
		<id>https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;diff=271&amp;oldid=prev</id>
		<title>imported&gt;Eliddell: Created page with &quot;== Introduction ==  In most of the cases it&#039;s quite obvious how to use these three classes and display data in it. But when it comes to displaying larger amount of data it hel...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.trinitydesktop.net/index.php?title=Displaying_large_amounts_of_data_(KDE3_Architecture)&amp;diff=271&amp;oldid=prev"/>
		<updated>2014-06-01T20:48:36Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Introduction ==  In most of the cases it&amp;#039;s quite obvious how to use these three classes and display data in it. But when it comes to displaying larger amount of data it hel...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
In most of the cases it&amp;#039;s quite obvious how to use these three classes and display data in it. But&lt;br /&gt;
when it comes to displaying larger amount of data it helps a lot if the programmer knows how&lt;br /&gt;
these classes work internally to be able to use them better, as they offer already some&lt;br /&gt;
optimations (and also I&amp;#039;m tired of telling the same things again and again :-)&lt;br /&gt;
&lt;br /&gt;
Finally these three classes are quite consistent in Qt 2.1, so most of the things I will tell here&lt;br /&gt;
apply to all of them. First I&amp;#039;ll tell some stuff about the basics and later on some more fency stuff&lt;br /&gt;
is coming.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTE:&amp;#039;&amp;#039;&amp;#039; Never use QTableView to write a widget for displaying large amounts of data. In most&lt;br /&gt;
cases one of the classes mentioned here should fit your needs. If this is not the case and you&lt;br /&gt;
need to write your own class, use QScrollView as baseclass. Although in the first impression&lt;br /&gt;
QTableView often looks like a good choice later on you will find out that this was not the case,&lt;br /&gt;
and QScrollView fits better.&lt;br /&gt;
&lt;br /&gt;
== Inserting and removing items ==&lt;br /&gt;
&lt;br /&gt;
All classes contain a number of items. To insert such an item it&amp;#039;s the easiest way to use the related item class (QListViewItem, etc.). To insert such an item create a new instance and specify the view in the constructor of the item. That&amp;#039;s all and nothing special so far. Now when it comes to inserting lots of items at once (e.g. using a loop) I&amp;#039;ve seen people playing around with timers and other paint optimizations to avoid having the view repaint its contents too often.&lt;br /&gt;
But the programmers which use these classes don&amp;#039;t need to do that at all since the views already perform that type of timer magic. So If you do e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;&lt;br /&gt;
QIconView *view = .... // something&lt;br /&gt;
for ( int i = 0; i &amp;lt; 2000; ++i ) {&lt;br /&gt;
    (void)new QIconViewItem( view, QString( &amp;quot;Item %1&amp;quot; ).arg( i ) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the iconview will not do a repaint for each new inserted item, but it will only do a repaint after the loop terminated. So inserting will not flicker or be slow. The same applies for QListBox and QListView. So, don&amp;#039;t do any timer magic of your own, the views do that for you! This means the views internally delay the repaint after inserting a new item using a QTimer. Now when a new item is inserted this timer is stopped and restarted. So, if lots of items are inserted, this repaint timer is stopped and restarted all the time and it never comes to a repaint until the last item has been inserted and some milliseconds elapsed.&lt;br /&gt;
&lt;br /&gt;
To remove an item, you don&amp;#039;t need to use any methods of the view or so. Just delete the item using the &amp;#039;&amp;#039;delete&amp;#039;&amp;#039; operator. The destructors of the items do all the needed work.&lt;br /&gt;
&lt;br /&gt;
Now, in some cases you might still want to disable repainting (updating) the view yourself.&lt;br /&gt;
This can be done using &amp;#039;&amp;#039;setEnableUpdates( bool )&amp;#039;&amp;#039;. But remember, all three classes are derived from QScrollView, so you have do enable/disable updating of the &amp;#039;&amp;#039;&amp;#039;viewport&amp;#039;&amp;#039;&amp;#039;!.&lt;br /&gt;
So do e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;&lt;br /&gt;
myView-&amp;gt;viewport()-&amp;gt;setEnableUpdates( FALSE );&lt;br /&gt;
// ....&lt;br /&gt;
myView-&amp;gt;viewport()-&amp;gt;setEnableUpdates( TRUE );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reacting on the correct signals ==&lt;br /&gt;
Finally also all three view classes have a set of consistent signals. This means&lt;br /&gt;
each class has some specific signals plus some general signals. Most of the time you will use some of the general signals, as these are the signals which are emitted on special mouse and key events.&lt;br /&gt;
&lt;br /&gt;
I leave out here the arguments, as they differ a bit depending on the view. But in most signals you get a pointer to a view item plus some other arguments. Here are the signals with a short description. For further details (e.g. arguments) refer to the documentation of these classes.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;selectionChanged&amp;#039;&amp;#039;&amp;#039; There are two selectionChanged signals. One with no arguments and one with a pointer to a view item. The first one is always emitted when the selection changes (different item(s) gets the selection). The second signal is only emitted in Single selection mode and the argument points to the newly selected item.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;currentChanged&amp;#039;&amp;#039;&amp;#039; As all these classes support keyboard navigation, there is always one &amp;#039;&amp;#039;current&amp;#039;&amp;#039; item: the item which is surrounded by the focus rectangle (in Single selection mode, the &amp;#039;&amp;#039;current&amp;#039;&amp;#039; item is always the same as the &amp;#039;&amp;#039;selected&amp;#039;&amp;#039; one). All modifications done by keyboard input are done to this item. This signal is emitted when a new item becomes current with a pointer to the item as argument.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;clicked&amp;#039;&amp;#039;&amp;#039; This signal is emitted when the user clicks an item or the view with any button. The argument is a pointer to the clicked item or 0 if the user clicked somewhere into the view but not on an item.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;pressed&amp;#039;&amp;#039;&amp;#039; This signal is emitted when the user presses an item or the view with any button. The argument is a pointer to the pressed item or 0 if the user pressed somewhere into the view but not on an item.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;doubleClicked&amp;#039;&amp;#039;&amp;#039; This signal is emitted when the user double clicks on an item or the view. The argument is a pointer to the clicked item or 0 if the user clicked somewhere into the view but not on an item.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;returnPressed&amp;#039;&amp;#039;&amp;#039; This signal is emitted when the user presses return. The argument is a pointer to the current item.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;rightButtonClicked&amp;#039;&amp;#039;&amp;#039; This signal is emitted when the user clicks an item or the view with the right button. The argument is a pointer to the clicked item or 0 if the user clicked somewhere into the view but not on an item.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;rightButtonPressed&amp;#039;&amp;#039;&amp;#039; This signal is emitted when the user presses an item or the view with the right button. The argument is a pointer to the pressed item or 0 if the user pressed somewhere into the view but not on an item.&lt;br /&gt;
&lt;br /&gt;
All of the &amp;#039;&amp;#039;pressed&amp;#039;&amp;#039; signals are emitted in the mousePressEvent, and all the &amp;#039;&amp;#039;clicked&amp;#039;&amp;#039; signals are emitted in the mouseReleaseEvent (click equals press followed by release).&lt;br /&gt;
&lt;br /&gt;
Then there are a number of signals emitted by each view which I will not discuss here, as I think the signals mentioned here are the most important ones.&lt;br /&gt;
&lt;br /&gt;
== Single Click / Double Click ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Sorting Items ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Selection Modes ==&lt;br /&gt;
&lt;br /&gt;
Each of the three classes supports four selection modes. These are following&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Single&amp;#039;&amp;#039;&amp;#039; When the user selects an item, any already-selected item becomes unselected, and the user cannot unselect the selected item. This means that the user can never clear the selection, even though the selection may be cleared by the application programmer using &amp;amp;lt;TheViewClass&amp;amp;gt;::clearSelection().&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Multi&amp;#039;&amp;#039;&amp;#039; When the user selects an item in the most ordinary way, the selection status of that item is toggled and the other items are left alone.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Extended&amp;#039;&amp;#039;&amp;#039; When the user selects an item in the most ordinary way, the selection is cleared and the new item selected. However, if the user presses the CTRL key when clicking on an item, the clicked item gets toggled and all other items are left untouched. And if the user presses the SHIFT key while clicking on an item, all items between the current item and the clicked item get selected or unselected depending on the state of the clicked item. Also multiple items can be selected by dragging the mouse while the left mouse button stayes pressed.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;NoSelection&amp;#039;&amp;#039;&amp;#039; Items cannot be selected.&lt;br /&gt;
&lt;br /&gt;
In other words, &amp;#039;&amp;#039;&amp;#039;Single&amp;#039;&amp;#039;&amp;#039; is a real single-selection view,&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Multi&amp;#039;&amp;#039;&amp;#039; a real multi-selection view, and &amp;#039;&amp;#039;&amp;#039;Extended&amp;#039;&amp;#039;&amp;#039; a view&lt;br /&gt;
where users can select multiple items but usually want to select&lt;br /&gt;
either just one or a range of contiguous items, and &amp;#039;&amp;#039;&amp;#039;NoSelection&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
is for a view where the user can look but not touch.&lt;br /&gt;
&lt;br /&gt;
Because of compatibility reasons the enum with the selection modes has not&lt;br /&gt;
been moved to the Qt namespace. So, each view class contains an enum with&lt;br /&gt;
the same selection modes, which meas for setting a selection mode you have to&lt;br /&gt;
use &amp;#039;&amp;#039;&amp;amp;lt;TheViewClass&amp;amp;gt;::&amp;amp;lt;SelectionMode&amp;amp;gt;&amp;#039;&amp;#039; &lt;br /&gt;
(e.g. iconview-&amp;gt;setSelectionMode( QIconView::Extended ) ).&lt;br /&gt;
&lt;br /&gt;
== Drag&amp;#039;n&amp;#039;Drop ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== In-Place renaiming of items ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Special Settings of QListBox ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
In most cases listboxes are used to dispay plain lists. But QListBox can&lt;br /&gt;
also display its items in multiple columns with dynamic or static widths and&lt;br /&gt;
heights. See following QListBox memeber methods for further details:&lt;br /&gt;
&lt;br /&gt;
*setRowMode&lt;br /&gt;
*setColumnMode&lt;br /&gt;
*setVariableWidth&lt;br /&gt;
*setVariableHeight&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of a plain listbox and one of a listbox with multiple columns (with&lt;br /&gt;
dynamic column widths)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:q3listbox-plain.png|frame|center|One column listbox screenshot]]&lt;br /&gt;
[[Image:q3listbox-multicol.png|thumb|center|500px|Multi colum listbox screenshot]]&lt;br /&gt;
&lt;br /&gt;
Finally, to iterate over all items of a QListBox use following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;&lt;br /&gt;
QListBox *lb = .... // something&lt;br /&gt;
for ( int i = 0; i &amp;lt; lb-&amp;gt;count(); ++i ) {&lt;br /&gt;
    lb-&amp;gt;item( i )-&amp;gt;doSomething();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Special Settings of QListView ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Finally, to iterate over all items of a QListView, use the QListViewItemIterator&lt;br /&gt;
class:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;&lt;br /&gt;
QListView *view = ... //something&lt;br /&gt;
QListViewItemIterator it( view );&lt;br /&gt;
for ( ; it.current(); ++it )&lt;br /&gt;
    it.current()-&amp;gt;doSomething();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Special Settings of QIconView ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Finally, to iterate over all items of a QIconView, use following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;&lt;br /&gt;
QIconView *view = ... //something&lt;br /&gt;
for (QIconViewItem *item = view-&amp;gt;firstItem();&lt;br /&gt;
     item; item = item-&amp;gt;nextItem()) {&lt;br /&gt;
    item-&amp;gt;doSomething();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Initial Author:&amp;#039;&amp;#039; [mailto:reggie@kde.org Reginald Stadlbauer]&lt;br /&gt;
&lt;br /&gt;
[[Category:KDE3]]&lt;br /&gt;
[[Category:Architecture]]&lt;br /&gt;
[[Category:Developers]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Eliddell</name></author>
	</entry>
</feed>