<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT blog &#187; tabulka</title>
	<atom:link href="http://szj.cz/tag/tabulka/feed/" rel="self" type="application/rss+xml" />
	<link>http://szj.cz</link>
	<description>internet, linux, novinky, programování</description>
	<lastBuildDate>Sat, 12 Sep 2015 11:14:32 +0000</lastBuildDate>
	<language>cs-CZ</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Qt  &#8211; tabulka</title>
		<link>http://szj.cz/qt-tabulka/</link>
		<comments>http://szj.cz/qt-tabulka/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 10:00:05 +0000</pubDate>
		<dc:creator><![CDATA[fredomgc]]></dc:creator>
				<category><![CDATA[Qt]]></category>
		<category><![CDATA[tabulka]]></category>

		<guid isPermaLink="false">http://szj.cz/?p=223</guid>
		<description><![CDATA[Pakliže potřebujete v programu prezentovat více údajů podobného charakteru, hodí se skvěle ke splnění takového úkolu běžná tabulka. V případě přehledně navržené struktury představuje jen obtížně porazitelného pomocníka pro rychlé seznámení s daty. Právě proto v tomto článku vytvoříme aplikaci, jenž umožní zadat větší počet těch nejzákladnějších osobních údajů (jméno a příjmení). Protože však samotné [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Pakliže potřebujete v programu prezentovat více údajů podobného charakteru, hodí se skvěle ke splnění takového úkolu běžná tabulka. V případě přehledně navržené struktury představuje jen obtížně porazitelného pomocníka pro rychlé seznámení s daty. Právě proto v tomto článku vytvoříme aplikaci, jenž umožní zadat větší počet těch nejzákladnějších osobních údajů (jméno a příjmení). Protože však samotné přidávání informací do tabulky bez následujícího zpracování příliš smysl nemá, bude i názorně demonstrováno jak k jednotlivým buňkám v kódu přistoupit a využít jejich obsah.</p>
<p><a href="http://szj.cz/wp-content/uploads/2012/03/qt-tabulka.png"><img class="aligncenter size-full wp-image-225" title="qt-tabulka" src="http://szj.cz/wp-content/uploads/2012/03/qt-tabulka.png" alt="Qt - tabulka" width="417" height="303" /></a></p>
<h2>QTableWidget</h2>
<p>Pokud si do vyhledávacího pole v návrhářském režimu zadáte termín &#8222;table&#8220;, zjistíte, že takové podmínce odpovídají hned dva prvky – Table View a Table Widget. V našem programu využijeme ten druhý jmenovaný. Důvodem je především způsob zpracování metod třídy <strong>QTableWidget</strong>. Do karet dále nahrává množství funkcí oproti <strong>QTableView</strong>.</p>
<p>Důležitou součást každé správné tabulky symbolizuje horní hlavička. Právě ona totiž dává samotným údajům smysl. O její nastavení se postará <strong>setHorizontalHeaderLabels(QStringList)</strong>. V parametru však vyžaduje list typu QstringList. Právě proto jej nejprve musíme vytvořit a vložit do něj přes append samotné popisky. Během programování rovněž nezapomeňte určit počet sloupců naší tabulky. Krásně k tomuto účelu poslouží počet prvků v listu.</p>
<p>Přidání řádku probíhá obdobně. Jednoduše jej vložíte za aktuální poslední záznam díky metodě <strong>insertRow(int)</strong>. Množství používaných řádků vám přitom prozradí <strong>rowCount().</strong></p>
<h2>Zpracování informací</h2>
<p>K procházení veškerých buněk v tabulce využijeme iterační cyklus, jehož proměnná bude reprezentovat daný řádek. Specifikaci sloupce poté můžeme provést staticky s pomocí proměnné typu int. Obsah buňky následně vrátí metoda <strong>item(int, int)</strong> avšak jako <strong>QtableWidgetItem *</strong>. Kýžený QString poté zprostředkuje <strong>text()</strong>.</p>
<p>#include &#8222;widget.h&#8220;<br />
#include &#8222;ui_widget.h&#8220;</p>
<p>#include <QMessageBox></p>
<p>widget::widget(QWidget *parent) :<br />
    QWidget(parent),<br />
    ui(new Ui::widget)<br />
{<br />
    ui->setupUi(this);</p>
<p>    QStringList list;<br />
    list.append(&#8222;Jméno&#8220;);<br />
    list.append(&#8222;Příjmení&#8220;);<br />
    ui->tableWidget->setColumnCount(list.size());<br />
    ui->tableWidget->setHorizontalHeaderLabels(list);</p>
<p>    setWindowTitle(&#8222;Tabulka&#8220;);</p>
<p>    connect(ui->pb_info,SIGNAL(clicked()),this,SLOT(vypsat_info()));<br />
    connect(ui->pb_pridat,SIGNAL(clicked()),this,SLOT(pridat_radek()));<br />
}</p>
<p>widget::~widget()<br />
{<br />
    delete ui;<br />
}</p>
<p>void widget::pridat_radek()<br />
{<br />
    ui->tableWidget->insertRow(ui->tableWidget->rowCount());<br />
}</p>
<p>void widget::vypsat_info()<br />
{<br />
    for(int i = 0; i < ui->tableWidget->rowCount();i++)<br />
    {<br />
        QMessageBox::information(this,QString::number(i+1)+&#8220;. řádek&#8220;,&#8220;Jméno: &#8222;+<br />
                                 ui->tableWidget->item(i,0)->text()+&#8220;\n&#8220;+<br />
                                 &#8222;Příjmení: &#8222;+<br />
                                 ui->tableWidget->item(i,1)->text()<br />
                                 );<br />
    }<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://szj.cz/qt-tabulka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
