<?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; menu</title>
	<atom:link href="http://szj.cz/tag/menu/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>Zvýraznění aktuální položky v menu s pomocí PHP</title>
		<link>http://szj.cz/zvyrazneni-aktualni-polozky-v-menu-s-pomoci-php/</link>
		<comments>http://szj.cz/zvyrazneni-aktualni-polozky-v-menu-s-pomoci-php/#comments</comments>
		<pubDate>Fri, 20 Jul 2012 06:41:50 +0000</pubDate>
		<dc:creator><![CDATA[fredomgc]]></dc:creator>
				<category><![CDATA[Programování]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zvýraznění]]></category>

		<guid isPermaLink="false">http://szj.cz/?p=344</guid>
		<description><![CDATA[Představme si klasický web. Zcela určitě na něm naleznete menu. K usnadnění orientace přitom může pomoci zvýraznění stránky, na které se uživatel momentálně nachází. Zdá se přitom, že jde o zanedbatelnou drobnost, schopnost pohybovat se na daném portálu s jistotou se však stává klíčovým požadavkem. K odlišení zvolené položky často plně postačí změnit její pozadí. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://szj.cz/wp-content/uploads/2012/07/menu-zvyrazneni.png"><img class="alignleft size-full wp-image-347" title="menu-zvyrazneni" src="http://szj.cz/wp-content/uploads/2012/07/menu-zvyrazneni.png" alt="Zvýraznění položky v menu" width="128" height="128" /></a>Představme si klasický web. Zcela určitě na něm naleznete menu. K usnadnění orientace přitom může pomoci zvýraznění stránky, na které se uživatel momentálně nachází. Zdá se přitom, že jde o zanedbatelnou drobnost, schopnost pohybovat se na daném portálu s jistotou se však stává klíčovým požadavkem.</p>
<p>K odlišení zvolené položky často plně postačí změnit její pozadí. O samotnou obměnu barvy se přitom starají kaskádové styly. Pokud si dnes stáhnete libovolnou bezplatnou šablonu, bývá již obvykle dostatečně připravena. Zvýraznění provádí přiřazení patřičného <strong>id</strong> samotnému odkazu nebo tagu <strong>li</strong>.</p>
<pre class="brush: xml; title: ; notranslate">&lt;ul&gt;
&lt;li id=&quot;current&quot;&gt;&lt;a href=&quot;login.php&quot; &gt;&lt;span&gt;Přihlásit se&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;register.php&quot; &gt;&lt;span&gt;Registrace&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;faq.php&quot; &gt;&lt;span&gt;FAQ&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Uvedený příklad může vypadat například takto:</p>
<p><a href="http://szj.cz/wp-content/uploads/2012/07/menu.png"><img class="aligncenter size-full wp-image-345" title="menu" src="http://szj.cz/wp-content/uploads/2012/07/menu.png" alt="Menu" width="316" height="48" /></a></p>
<p>Nyní si ve stručnosti představíme jednotlivé způsoby, které lze pro zvýraznění použít. U jednoduchého statického a opravdu nerozsáhlého webu lze přistoupit k manuálnímu připsání dotyčného id u každého souboru. V případě rozsáhlejšího projektu lze nastíněný problém řešit buď na straně serveru nebo použít JavaScript. Tento skriptovací jazyk se mi zde však nezdá jako příliš vhodný, protože jej daný návštěvník nemusí mít povolený. Zbývá tedy varianta odeslání do prohlížeče již vhodně upravené stránky, kde id bude patřit vybrané součásti z menu. Původně jsem myslel, že v PHP budu muset vytvořit velký počet podmínek, existuje však mnohem elegantnější zápis.</p>
<p>O vše se postará následující řádek:</p>
<pre class="brush: php; title: ; notranslate">if (strpos($_SERVER['PHP_SELF'], 'login.php')) echo ' id=&quot;current&quot;';</pre>
<p>Globální proměnná <strong>$_SERVER[&#8218;PHP_SELF&#8216;]</strong> obsahuje cestu k aktuálnímu souboru. Pokud v ní funkce <strong>strpos</strong> nalezne zadaný řetězec (v našem případě login.php) vrátí pozici, na které začíná. V případe žádného výskytu se dočkáme <strong>FALSE</strong>. Výpis <strong>id=&#8220;current&#8220;</strong> se proto u nevyhovující podmínky neprovede.</p>
<p>Nyní již jen stačí zmíněný kousek kódu umístit na patřičné místo. Obvykle záleží na tom, zda chcete nastavit id tagu <strong>a</strong> nebo <strong>li</strong>. Náš příklad vyžaduje druhou možnost, a proto pro zajištění plné funkčnosti postupuji následovně:</p>
<pre class="brush: php; title: ; notranslate">  echo '&lt;li';
  if (strpos($_SERVER['PHP_SELF'], 'login.php')) echo ' id=&quot;current&quot;';
  echo '&gt;&lt;a href=&quot;login.php&quot; &gt;&lt;span&gt;Přihlásit se&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;';
 
 echo '&lt;li';
  if (strpos($_SERVER['PHP_SELF'], 'register.php')) echo ' id=&quot;current&quot;';
  echo '&gt;&lt;a href=&quot;register.php&quot; &gt;&lt;span&gt;Registrace&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;';

 echo '&lt;li';
  if (strpos($_SERVER['PHP_SELF'], 'faq.php')) echo ' id=&quot;current&quot;';
  echo '&gt;&lt;a href=&quot;faq.php&quot; &gt;&lt;span&gt;FAQ&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;';</pre>
]]></content:encoded>
			<wfw:commentRss>http://szj.cz/zvyrazneni-aktualni-polozky-v-menu-s-pomoci-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qt – menu</title>
		<link>http://szj.cz/qt-%e2%80%93-menu/</link>
		<comments>http://szj.cz/qt-%e2%80%93-menu/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 00:00:55 +0000</pubDate>
		<dc:creator><![CDATA[fredomgc]]></dc:creator>
				<category><![CDATA[Qt]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[programování]]></category>

		<guid isPermaLink="false">http://szj.cz/?p=106</guid>
		<description><![CDATA[Následující aplikace patří mezi ty jednodušší, dokáže totiž pouze sečíst dvě celá čísla. Mnohem zajímavější však je způsob ovládání. Naučíme se vytvořit klasické menu včetně toolbaru. Práce v designérském režimu Při zakládání nového projektu nezapomeňte, že tentokrát budeme vycházet z třídy QMainWindow. Po otevření vzhledu okna začneme s přidáním dvou prvků line edit a několika [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Následující aplikace patří mezi ty jednodušší, dokáže totiž pouze sečíst dvě celá čísla. Mnohem zajímavější však je způsob ovládání. Naučíme se vytvořit klasické menu včetně <strong>toolbaru</strong>.</p>
<h2>Práce v designérském režimu</h2>
<p>Při zakládání nového projektu nezapomeňte, že tentokrát budeme vycházet z třídy <strong>QMainWindow</strong>. Po otevření vzhledu okna začneme s přidáním dvou prvků <strong>line edit </strong>a několika popisků (<strong>label</strong>). Kompletně vynecháme jakákoliv tlačítka a vrhneme se na ovládací nabídku. Jednoduše vypíšeme názvy jednotlivých položek v menu, které se následně usídlí ve spodní záložce <strong>Action editor</strong>. Po kliknutí na některou z nich se nám otevře okno, ve kterém lze nastavit mnoho užitečných věcí. Konkrétně si ze souboru přidáme vhodnou ikonu. Pokud žádnou nedisponujete, vyzkoušejte tzv. <strong>projekt</strong> <strong>Nuvola</strong>. Jedná se o obsáhlou sadu ikonek v nejpoužívanějších rozměrech uvolněnou pod licencí <strong>LGPL</strong>.</p>
<p><a href="http://szj.cz/wp-content/uploads/2011/11/qt-menu.png"><img class="aligncenter size-full wp-image-107" title="qt-menu" src="http://szj.cz/wp-content/uploads/2011/11/qt-menu.png" alt="Qt - menu" width="367" height="262" /></a></p>
<p><a href="http://szj.cz/wp-content/uploads/2011/11/qt-rozbalene-menu.png"><img class="aligncenter size-full wp-image-108" title="qt-rozbalene-menu" src="http://szj.cz/wp-content/uploads/2011/11/qt-rozbalene-menu.png" alt="Qt - rozbalené menu" width="367" height="262" /></a></p>
<h2>Horké klávesy</h2>
<p>Vždy se vyplácí aplikaci navrhovat takovým způsobem, aby ji bylo možno ovládat bez pomoci kurzoru myši. Stačí před název položky přidat znak <strong>ampersand</strong> (<strong>&amp;</strong>) a následně lze využít následující písmeno při kombinaci s klávesou <strong>ALT</strong> pro získání kontroly nad programem. Vaši práci ocení například majitelé notebooků, kteří nemají po ruce myš a s touchpadem si příliš nerozumí.</p>
<h2>Toolbar</h2>
<p>Jakmile máte veškeré objekty seskupené v <strong>Action Editoru</strong> nastavené dle vašeho přání, přejděte k vytvoření <strong>toolbaru</strong>. Stačí přetáhnout libovolnou položku na požadované místo v <strong>toolbaru</strong>, který se automaticky nachází pod menu. O správném postupu vás okamžitě ubezpečí přidělená ikonka.</p>
<h2>Zdrojový kód</h2>
<p>Další postup již není nijak náročný. Stačí jen získat údaje z obou <strong>line</strong> <strong>editů</strong>, provést součet a výsledek nastavit jako text patřičnému <strong>labelu</strong>. Nezapomeňte rovněž propojit oba <strong>signály</strong>. Povšimněte si obzvláště slotu <strong>close()</strong>, který se postará o hladké ukončení programu. Nezapomeňte rovněž zajistit zobrazení výsledku získaného během průběhu <strong>secti()</strong> po kliknutí na <strong>Sečíst</strong> v menu.</p>
<p>#include &#8222;hlavniokno.h&#8220;<br />
#include &#8222;ui_hlavniokno.h&#8220;<br />
#include <QIntValidator><br />
#include <QString></p>
<p>HlavniOkno::HlavniOkno(QWidget *parent) :<br />
    QMainWindow(parent),<br />
    ui(new Ui::HlavniOkno)<br />
{<br />
    ui->setupUi(this);<br />
    setWindowTitle(&#8222;Menu&#8220;);</p>
<p>    QIntValidator *val;<br />
    val = new QIntValidator(this);</p>
<p>    ui->le_prvni->setValidator(val);<br />
    ui->le_druhe->setValidator(val);</p>
<p>    connect(ui->action_Secist,SIGNAL(triggered()),this,SLOT(secti()));<br />
    connect(ui->action_Konec,SIGNAL(triggered()),this,SLOT(close()));<br />
}</p>
<p>HlavniOkno::~HlavniOkno()<br />
{<br />
    delete ui;<br />
}</p>
<p>void HlavniOkno::secti(){<br />
int prvni,druhe,vysledek;<br />
QString pom;<br />
prvni = ui->le_prvni->text().toInt();<br />
druhe = ui->le_druhe->text().toInt();</p>
<p>vysledek = prvni + druhe;</p>
<p>ui->l_vysledek->setText(pom.setNum(vysledek));</p>
<p>}</p>
<p>&nbsp;</p>
<p>#ifndef HLAVNIOKNO_H<br />
#define HLAVNIOKNO_H</p>
<p>#include <QMainWindow></p>
<p>namespace Ui {<br />
    class HlavniOkno;<br />
}</p>
<p>class HlavniOkno : public QMainWindow<br />
{<br />
    Q_OBJECT</p>
<p>public:<br />
    explicit HlavniOkno(QWidget *parent = 0);<br />
    ~HlavniOkno();</p>
<p>private:<br />
    Ui::HlavniOkno *ui;<br />
public slots:<br />
    void secti();<br />
};</p>
<p>#endif // HLAVNIOKNO_H</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://szj.cz/qt-%e2%80%93-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
