WANPod třípísmenným označením WAN se skrývá počítačová síť, která může plnit hned několik užitečných funkcí. Nejčastěji jde o propojení dvou vzdálených míst. Firmy obvykle s pomocí WAN propojují lokální sítě (LAN). Umožní tak například pracovníkům přistupovat k interním dokumentům společnosti z rozdílných míst. Prakticky nejznámější příklad typický pro WAN představuje internet. Mnoho organizací, které se pro nasazení vlastní Wide Area Network rozhodnou, však budují síť pouze pro své soukromé potřeby.

Cisco v tomto případě doporučuje rozdělit topologii na tři skupiny zařízení:

  • Enterprise Campus – servery uvnitř firmy apod.
  • Enterprise Edge – rozhraní sloužící pro propojení s ISP
  • ISP Edge – zajišťuje samotné spojení s druhou (vzdálenou) stranou

Většina přenosu dat se v případě WAN děje pouze na prvních dvou vrstvách ISO/OSI modelu. To znamená, že není zajištěna detekce chyb. Wide Area Network se spoléhá na zařízení pracující na vyšších vrstvách (např. router).

V současnosti existuje několik rozdílných metod komunikace ve WAN prostředí:

  • point-to-point (Cisco HDLC, PPP) – jde o spojení dvou bodů, které je trvalé (vyhrazené).
  • packet switched (X.25, Frame Relay, ATM) – data se přenáší po paketech, které putují rozdílnými cestami. Stává se proto, že dorazí v jiném pořadí, než byly odeslány.
  • circuit switched (ISDN) – jasný příklad symbolizuje klasický telefon. Dochází zde k vytvoření dočasného spojení, které se však během přenosu nemění.

Zajímavost

Protokol X.25 rozhodně nepatří mezi moderní technologie. Díky své velmi omezené přenosové kapacitě se s ním například dnes setkáme u platebních terminálů či bankomatů.

Mnohem širším využitím již disponuje Frame relay. S vyšší rychlostí se logicky proměňuje v zástupce zastaralého protokolu X.25. Během komunikace si vytváří virtuální permanentní okruh (tzv. PVC), k jehož identifikaci používá DLCI (Data-Link Connection Identifier).

ATM se někdy přiřazuje do skupiny fungující na principu přepojování buněk. Data totiž posílá v tzv. cells a dosahuje rychlosti přes 600Mb/s. Nasazuje se proto i pro přenos VoIP či videa.

A nyní lehce zabrousíme k otázce financí, které předurčují reálné využití představených technologií. Mezi nejlevější variantu patří přepojování okruhů (Circuit switched ). S největšími náklady je naopak spojena pronajatá linka (point-to-point ). Ta se však řadí mezi jednoznačně nejbezpečnější.

Kdo z nás by nechtěl ze svého počítače získat vyšší výkon? Pokud toužíte po skutečně vysoké hodnotě FPS, obvykle musíte popřemýšlet nad koupí nového hardware. To je však finančně náročnější úkon. Pakliže vystačíte jen s drobnějším vylepšením, můžete vyzkoušet softwarové řešení. Já osobně jsem nedávno narazil na aplikaci Game Booster, která slibuje znatelné výsledky. Proč ji proto neudělit šanci?

Jednoduchý princip

Koncept, na kterém aplikace pracuje, není ničím zázračně unikátním. Po stisknutí obrovského tlačítka Zrychlit (popisky v naší mateřštině zajišťuje česká lokalizace) dojde k ukončení nepotřebných procesů, které během hraní nepotřebujete. Jde o nejrůznější služby běžící nenápadně na pozadí, které se však pochopitelně negativně podílejí na celkovém výkonu. K vytvoření programu typu Game Booster potřebujete mít dostatek zkušeností s fungováním operačního systému a software spojeného s hrami. Po přepnutí do výkonného módu proto například skutečně nedojde k ukončení klienta Steamu. Autoři rovněž prohlašují, že jejich dílo bez problémů funguje i s anti-cheat systémy PunkBuster či VAC. Game Booster navíc dokáže v případě Steamu rozpoznat spuštění hry a automaticky se postará o zvýšení výkonu. Po ukončení naopak uvede systém do původního stavu. Osobně mi z počátku tato funkce vyhovovala, později jsem ji ale vypnul. Neustálé automatické přepínání mezi dvěma módy mi začalo vadit – mám prostě raději věci sám pod kontrolou :-) . U her, které jste nezískali prostřednictvím distribučního systému Steam lze k monitorování využít funkci dostupnou přes kontextovou nabídku vyvolanou pravým tlačítkem myši.

Game Booster

Opravdu to funguje?

Game Booster jsem vyzkoušel s několika hrami a mé prvotní nadšení postupně opadalo. Samozřejmě, že po ukončení mnoha procesů musí operační systém pracovat rychleji, nezdá se mi však, že by změnu šlo rozpoznat. Jedinou výjimku představovala situace, kdy se Windows 7 rozhodl na pozadí defragmentovat či indexovat souborový systém. V tomto případě představuje Game Booster skutečně neocenitelnou pomůcku.

EndoraPakliže neznáte projekt Endora, věřte, že se jedná o nejen mnou hojně využívanou službu určenou pro bezplatného hostování webů. Za pár drobných měsíčně si lze přitom polepšit a získat větší povolený traffic i rozšířené místo pro uložení různorodých souborů. Přes Endoru si lze rovněž zaregistrovat cz doménu. S touto službou však nemám zkušenosti a osobně bych raději zvolil specializovanou společnost. Co se týče bezplatného hostingu, není si na co stěžovat. S pomocí přehledného administračního rozhraní lze jednotlivé weby pohodlně spravovat. Jako protislužbu Endora vyžaduje vložení reklamní paty složené z několika odkazů. Nově rovněž přibyla funkce, která vyhledává určená klíčová slova a mění je potom mění na propagační odkazy. Každý uživatel si u jednotlivých domén přitom může sám určit, jaká forma reklamy mu nejvíce vyhovuje.

Výpadek databázového serveru

Nepříjemnost začala jednoho dne přibližně v 7:30, kdy jsem s hrůzou zjistil, že žádný z hostovaných webů se nedokáže připojit k databázi a nefunguje ani oficiální stránka www.endora.cz. Okamžitě mě začaly napadat nejrůznějších katastrofické scénáře zahrnující konec celého projektu. Naštěstí se však přibližně za hodinu na webu objevily vysvětlující informace. Došlo k hardwarové závadě na diskovém poli a celý problém by měl být vyřešen v 11:00. Schválně jsem v tuto dobu vyzkoušel načíst v prohlížeči jeden ze svých webů. K určitému posunu došlo, stránka se však úspěšně zobrazila přibližně v jednom z pěti případů. Nyní jsem již byl klidnější, protože nastalou situaci skutečně někdo řešil. Odpoledne pak vše fungovalo tak, jak mělo a po ranním výpadku nebylo ani památky. Endora se omluvila a klientům s placeným balíčkem nabídla kompenzaci v podobě 14 dní hostingu zdarma.

Oficiální prohlášení

Endora rovněž později uvedla, že za výpadkem stálo selhání dvou disků ze čtyř zapojených v RAIDu. Šance na výpadek dvou HDD ve stejnou dobu je však skutečně nízká. Endora ostatně přisuzuje celý problém firmwarové chybě. V rámci co nejrychlejšího vyřešení se přistoupilo k dočasnému použití dat obnovených z rozpadlého pole. Díky své nekonzistentnosti však nakonec finální řešení přišlo až s nasazením ranní zálohy.

Pakliže znáte starou hru Quake III Arena, nemůže vás modernější verze Quake Live ničím překvapit. Hlavní úkol hráče se totiž vůbec nezměnil. Z pohledu první osoby budete s pomocí různých zbraní zabíjet své nepřátele a získávat tzv. fragy. Nečekají na vás však žádní počítačově řízení protivníci, ale skuteční lidé. Quake Live totiž těží právě z mutliplayeru. Existuje pochopitelně možnost zahrát si v rámci tréninku s umělou inteligencí, zábava však začíná až po ostrém připojení na vybraný server. Po zaregistrování si můžete vyzkoušet až 50 map v pěti herních módech. Nechybí pochopitelně klasický Deathmach či Capture The Flag.

Snadná a rychlá instalace

Velmi mě potěšilo, že Quake Live podporuje Windows, Linux i Max OS X. Zahrajete si proto skutečně kdekoliv. Stačí jen nainstalovat plugin do prohlížeče a vyčkat na stažení základních dat. Po pár minutách se již proto vrháte do hry. První fragy jsem získal na kombinaci Windows 7 a Chrome. Po nabootování Ubuntu však již prohlížeč od Google nešel použít. Plugin pro jeho linuxovou verzi totiž prozatím neexistuje. Stačilo však spustit Firefox a vše běželo bez sebemenších obtíží.

Grafika

Po přepnutí do fullscreen módu Quake Live vypadá velmi obstojně. Navíc běží i na slabších počítačích – např. netbook s 1,66 GHZ, 1 GB RAM, integrovaná grafická karta. Textury disponují vysokou kvalitou a propracované efekty rovněž potěší. Nezasvěcený člověk prakticky nemá šanci rozpoznat, že si ve skutečnosti užívá hru v prohlížeči.

Reklamy a placené účty

Celý projekt pochopitelně potřebuje generovat zisk. Za tímto účelem se proto před každým připojením na server zobrazí krátká video reklama (přibližně 15 vteřin). Existuje rovněž možnost pořídit si tzv. Premium či Pro účet. První varianta vás přijde na 2 dolary měsíčně, zatímco ta druhá z peněženky odčerpá za stejný časový úsek dvojnásobek – tedy 4 USD. Po zakoupení členství se zbavíte reklam, získáte možnost vytvářet klany či prohlížet prodlouženou historii zápasů. Kompletní výčet výhod si můžete prostudovat na této stránce.

Raspberry PiPod pojmem Raspberry Pi se skrývá opravdu miniaturní počítač, nad jehož koupí uvažuji. Velikostí jej lze přirovnat k obyčejné platební kartě. I přes malé rozměry však bude obsahovat ARM procesor běžící na 700 Mhz. Co se týče operační paměti, lze si zvolit mezi variantou s128 MB nebo 256 MB. Obejít se z pochopitelných důvodů (velikost, spotřeba) musíme bez pevného disku. Jako úložiště dat využijete paměťovou kartu. Záměrně jsem přitom v předcházejícím popisu použil budoucí čas. Koncept Raspberry Pi se momentálně nachází v „betaverzi“. Existují již však funkční prototypy a návrháři se snaží vychytat poslední mouchy. Dle oficiálního vyjádření si počítač objednáme již v lednu 2012. Vydáme přitom pouhých 25 nebo 35 dolarů. Cena záleží na konkrétním modelu, který si vyberete.

Napájení

O dodání potřebné životodárné elektrické energie se postará USB. Ano, Raspberry Pi si skutečně vystačí s pouhými 5 Volty (1 A). Objevují se rovněž úvahy, že by šlo napájení v nouzi realizovat i s pomocí klasických tužkových baterií.

Operační systém

Po seznámení s hardwarem přejděme k další důležité vlastnosti každého počítače. Co se týče operačního systému, spatříte po nabootování Linux. Volit dokonce můžete mezi několika distribucemi. Původně se uvažovalo i o podpoře Ubuntu, nakonec však z této idei sešlo.

Periferie

O připojení myši a klávesnice se postarají dva USB 2.0 konektory (pouze u modelu B, verze A obsahuje jeden). Monitor či televizi následně spojíte s Raspberry Pi díky standardu HDMI. Zvukový výstup zprostředkuje odpovídající 3,5 mm jack.

Připojení na internet

Model B bude disponovat 100 megabitovou síťovou kartou. Jestliže zatoužíte po Wi-Fi, nebrání vám nic v zakoupení daného USB adaptéru.

Case

Prozatím se neplánuje počítač dodávat včetně skříně o shodných rozměrech. Ochranné pouzdro si proto musíte vyrobit na vlastní pěst. Nicméně se skvělým nápadem přišli samotní příznivci Raspberry Pi. Proč nevyužít klasické LEGO?

Na následujícím příkladě si společně ukážeme práci s combo boxem. Konkrétně budeme využívat rovnou dva ovládací prvky tohoto typu, které na sobě dokonce budou závislé. Změna volby uživatelem se proto okamžitě projeví v obsahu druhého combo boxu. Pokud nastavíme vlastnost editable na true, získáme možnost vkládat vlastní hodnoty. V našem programu však povolíme výběr pouze z předem definovaných údajů. Nejprve se aplikace zeptá, zda-li budeme cestovat po zemi nebo ve vzduchu. Na základě odpovědi poté upraví druhý combo box a nabídne odpovídající dopravní prostředky.

Combo box

Designérský režim

Po vytvoření projektu se přepneme do módu design. Postupně přidáme oba combo boxy a několik Labelů. Nezapomeňte si jednotlivé objekty vhodně pojmenovat, díky čemuž si usnadníte následující programování.

Tvorba zdrojového kódu

Mezi pro nás nejdůležitější funkci combo boxu patří addItem. V konstruktoru třídy si s její pomocí naplníme ovládací prvek. Položky se přidávají vždy za poslední volbu a disponují rovněž vlastním interním id, které se počítá od nuly. To ostatně vysvětluje, proč jsem vytvořil i pomocnou funkci procistit. Původně přitom její tělo obsahovalo iterační cyklus, včas mě však zarazila hodnota vrácená s pomocí count. Ta totiž prozrazuje celkový počet záznamů a nikoliv nejvyšší id. Tuto hodnotu si musíme sami dopočítat, tedy odečíst jedničku. Procistit musíme zavolat po každé změně výběru, protože v opačném případě by se druhý combo box postupně rozrůstal o duplicitní informace. Spojení signálů a slotů pochopitelně naleznete opět v konstruktoru. Volají se v podstatě jen dvě funkce – zmena a souhrn. Ta první se postará o obměnu příslušného combo boxu. Druhá nám sestaví informační QString, který poté nastaví vlastnosti text u Labelu umístěného ve spodní části okna. Povšimněte si rovněž, že se plně obejdeme bez tlačítek. Veškeré úpravy probíhají ihned poté, co uživatel změní svůj názor.

 C++ (QT) |  copy code |? 
01
#include "widget.h"
02
#include "ui_widget.h"
03
 
04
 
05
Widget::Widget(QWidget *parent) :
06
    QWidget(parent),
07
    ui(new Ui::Widget)
08
{
09
    ui->setupUi(this);
10
 
11
    ui->cb_typCesty->addItem("Po zemi");
12
    ui->cb_typCesty->addItem("Ve vzduchu");
13
 
14
    connect(ui->cb_typCesty,SIGNAL(activated(int)),this,SLOT(zmena(int)));
15
    connect(ui->cb_typCesty,SIGNAL(activated(int)),this,SLOT(souhrn()));
16
    connect(ui->cb_dopravniProstredek,SIGNAL(activated(int)),this,SLOT(souhrn()));
17
    zmena(ZEME);
18
    souhrn();
19
 
20
 
21
}
22
 
23
Widget::~Widget()
24
{
25
    delete ui;
26
}
27
 
28
void Widget::zmena(int id){
29
    procistit(ui->cb_dopravniProstredek);
30
 
31
  if (id == ZEME){
32
      ui->cb_dopravniProstredek->addItem("Automobil");
33
      ui->cb_dopravniProstredek->addItem("Motocykl");
34
  }else if (id == VZDUCH){
35
      ui->cb_dopravniProstredek->addItem("Letadlo");
36
      ui->cb_dopravniProstredek->addItem("Helikoptéra");
37
      }
38
}
39
 
40
 
41
void Widget::procistit(QComboBox*& obj){
42
    while(obj->count() != 0){
43
     obj->removeItem(obj->count()-1);
44
    }
45
 
46
}
47
 
48
void Widget::souhrn(){
49
QString typ = ui->cb_typCesty->itemText(ui->cb_typCesty->currentIndex());
50
QString prostredek = ui->cb_dopravniProstredek->itemText(ui->cb_dopravniProstredek->currentIndex());
51
QString vysledek = "Typ cesty: "+ typ +". Dopravní prostředek: " + prostredek;
52
ui->l_vysledek->setText(vysledek);
53
}
54

 

Enum

Závěrem ještě poukáži na výčtový typ pojmenovaný překvapivě jako TYP. Konstanta ZEME zastupuje číselnou hodnotu 0, zatímco VZDUCH symbolizuje 1. Zdrojový kód díky tomu získává na přehlednosti.

 C++ (QT) |  copy code |? 
01
#ifndef WIDGET_H
02
#define WIDGET_H
03
 
04
#include <QWidget>
05
#include <QButtonGroup>
06
 
07
#include <QComboBox>
08
 
09
enum TYP{ZEME,VZDUCH};
10
 
11
namespace Ui {
12
    class Widget;
13
}
14
 
15
class Widget : public QWidget
16
{
17
    Q_OBJECT
18
 
19
public:
20
    explicit Widget(QWidget *parent = 0);
21
    ~Widget();
22
 
23
 
24
public slots:
25
    void zmena(int);
26
    void souhrn();
27
 
28
private:
29
    Ui::Widget *ui;
30
    void procistit(QComboBox*& obj);
31
};
32
 
33
#endif // WIDGET_H
34

 

Protože netbook nebyl od počátku plánován jako herní zařízení, pochopitelně zde můžete mít problémy s během nejrůznějších herních aplikací. Já osobně jsem se rozhodl zprovoznit populární hru GTA: San Andreas. Dva následující tipy sice nepředstavují nic zázračného, mohou vám však u řady her zlepšit FPS. Zpočátku jsem byl docela překvapen, že na netbooku lze GTA:SA vůbec spustit. S pomocí Wikipedie jsem však následně zjistil, že tato hra využívá stejný engine jako předchozí verze GTA:Vice City. Grafika však dle mého názoru na netbooku vypadá docela obstojně. Záleží zkrátka na vás, jestli dáváte přednost flashovým hrám nebo raději sáhnete po rozsáhlejším titulu, ovšem za cenu snížení detailů.

Následující rady pochopitelně počítají s faktem, že máte ukončeny veškeré nepotřebné programy běžící na pozadí a v nastavení grafických detailů volíte umírněněji.

Nastavení priority

Několikrát se mi osvědčilo zvýšit prioritu procesu patřícího k dané hře. Konkrétně u GTA: San Andreas bez problému fungovala i nejvyšší dostupná volba. Naopak tomu např. Trackmania Nations Forever si po zvýšení priority pro sebe vyhradila téměř 700 MB z dostupného 1 GB RAM paměti a následně mě donutila restartovat operační systém. Záleží proto zkrátka na konkrétní hře, jak změnu přijme a zda-li popisovaný postup přinese žádaný účinek.

Změna priority

Ukončení explorer.exe

Po stisknutí CTRL+Shift+ESC můžete ve Správci úloh zvážit ukončení procesu explorer.exe. Možná jste si všimli, že v případě pádu se obvykle sám spustí znovu. Po ukončení uživatelem se však již takto nechová. Pro hraní jej navíc skutečně nepotřebujete. Nelekněte se však, že přijdete o nabídku Start a ikony na ploše. Mezi aplikacemi se můžete snadno přepínat s pomocí Alt+Tab. Jakmile přes Správce úloh vyvoláte dialog pro spuštění nového programu, stačí zde zadat explorer.exe a vše se vrátí do původního stavu.

Spuštění procesu

V tomto článku bych se s vámi rád podělil o adresu výborného webu, který pravidelně informuje o poskytovatelích VPS, kteří své služby nabízejí za extrémně nízké ceny. S ohledem na minimální pořizovací náklady se proto server pochopitelně nehodí na hostování velkého počtu náročných projektů, skvěle však zastane svoji funkci jako pískoviště pro provádění nejrůznějších pokusů. Zavítejte proto na www.lowendbox.com a nechte se inspirovat.

Optimalizace a postupy pro dosažení vyššího výkonu

Osobně jsem si VPS objednal, protože jsem chtěl vyzkoušet vzdálenou správu serveru pouze z prostředí příkazového řádku. S Linuxem na desktopu již mám několikaleté zkušenosti, avšak toužil jsem po rozšíření svých znalostí. Poradit vám proto například mohu výborného správce souborů Midnight commander, kterého získáte po nainstalování balíčku mc. Program svým ovládáním a funkcemi vzdáleně připomíná Total Commander a přitom skvěle běží v terminálu. Autor představovaného portálu se rozhodl dokázat, že i slabší VPS bez problémů zvládne hostovat několik menších statických webů či dokonce publikační systém WordPress (na něm běží jak szj.cz, tak i lowendbox.com). Vytvořil proto tento návod, ve kterém radí, jak s pouhými 64 MB RAM paměti stvořit skutečně svižný server. Uvedený postup rovněž může pomoci lidem, kteří si chtějí od základu VPS samostatně nakonfigurovat.

Nedávno mě Google pomocí emailu informoval o novinkách, které budou používat všichni uživatelé služby Analytics od začátku roku 2012. Současné rozhraní se proto již brzy stane minulostí. Namísto toho přijde na řadu bílo-šedé pozadí s dominující oranžovou lištou. Přestaňme se ale zabývat designem a zaměřme se raději na novinky týkající se funkcionality. Za vyzdvižení rozhodně stojí přehledy v reálném čase, které v Analytics doteď chyběly.

Přesný počet návštěvníků

Samozřejmě jsem se rozhodl vyzkoušet, jakým způsobem se s částečně přepracovaným ovládáním pracuje. Po prvotním šoku jsem záhy objevil, že mi nové uspořádání nijak nevadí. Pod záložkou Domovská stránka jsem navíc narazil na již zmiňované přehledy v reálném čase nacházející se v betaverzi. S jejich pomocí se ihned dozvíte aktuální počet návštěvníků a množství zobrazení stránek v horizontu vteřin a minut. Cenné údaje rovněž představují nejčastější vstupní klíčová slova. V přehledné tabulce záhy identifikujete podstránky vašeho portálu, na kterých se momentálně nachází nejvíce osob. Třešničku na dortu pak symbolizuje mapa prozrazující přibližné umístění vašich aktuálních návštěvníků na úrovni města i státu. Otestoval jsem i přesnost hlavního číselného počítadla aktivních uživatelů. Odezva mezi načtením webu a aktualizací příslušného údaje v Google Analytics nikdy nepřekročila několik málo vteřin. Obdobně tomu bylo i v případě zavření záložky prohlížeče se zobrazeným testovacím webem. Informace proto dle mého názoru odpovídají skutečnosti. Podívejte se, jaká čísla zobrazovalo populární počítadlo TOPlist, když administrace Analytics hlásila 21 návštěvníků. Rozdíl byl vskutku veliký – 109 lidí online. Na uvedeném příkladu jasně vidíte, že TOPlist počítá tyto hodnoty na jiném principu a s pomocí rozdílných technologií než Analytics. Pokud proto toužíte po zcela přesných statistikách, nyní již víte, kde je máte hledat.

Google AnalyticsTOPlist

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 popisků (label). 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 Action editor. 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. projekt Nuvola. Jedná se o obsáhlou sadu ikonek v nejpoužívanějších rozměrech uvolněnou pod licencí LGPL.

Qt - menu

Qt - rozbalené menu

Horké klávesy

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 ampersand (&) a následně lze využít následující písmeno při kombinaci s klávesou ALT 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í.

Toolbar

Jakmile máte veškeré objekty seskupené v Action Editoru nastavené dle vašeho přání, přejděte k vytvoření toolbaru. Stačí přetáhnout libovolnou položku na požadované místo v toolbaru, který se automaticky nachází pod menu. O správném postupu vás okamžitě ubezpečí přidělená ikonka.

Zdrojový kód

Další postup již není nijak náročný. Stačí jen získat údaje z obou line editů, provést součet a výsledek nastavit jako text patřičnému labelu. Nezapomeňte rovněž propojit oba signály. Povšimněte si obzvláště slotu close(), který se postará o hladké ukončení programu. Nezapomeňte rovněž zajistit zobrazení výsledku získaného během průběhu secti() po kliknutí na Sečíst v menu.

 C++ (QT) |  copy code |? 
01
#include "hlavniokno.h"
02
#include "ui_hlavniokno.h"
03
#include <QIntValidator>
04
#include <QString>
05
 
06
HlavniOkno::HlavniOkno(QWidget *parent) :
07
    QMainWindow(parent),
08
    ui(new Ui::HlavniOkno)
09
{
10
    ui->setupUi(this);
11
    setWindowTitle("Menu");
12
 
13
    QIntValidator *val;
14
    val = new QIntValidator(this);
15
 
16
    ui->le_prvni->setValidator(val);
17
    ui->le_druhe->setValidator(val);
18
 
19
    connect(ui->action_Secist,SIGNAL(triggered()),this,SLOT(secti()));
20
    connect(ui->action_Konec,SIGNAL(triggered()),this,SLOT(close()));
21
}
22
 
23
HlavniOkno::~HlavniOkno()
24
{
25
    delete ui;
26
}
27
 
28
void HlavniOkno::secti(){
29
int prvni,druhe,vysledek;
30
QString pom;
31
prvni = ui->le_prvni->text().toInt();
32
druhe = ui->le_druhe->text().toInt();
33
 
34
vysledek = prvni + druhe;
35
 
36
ui->l_vysledek->setText(pom.setNum(vysledek));
37
 
38
}
39

 

 C++ (QT) |  copy code |? 
01
#ifndef HLAVNIOKNO_H
02
#define HLAVNIOKNO_H
03
 
04
#include <QMainWindow>
05
 
06
namespace Ui {
07
    class HlavniOkno;
08
}
09
 
10
class HlavniOkno : public QMainWindow
11
{
12
    Q_OBJECT
13
 
14
public:
15
    explicit HlavniOkno(QWidget *parent = 0);
16
    ~HlavniOkno();
17
 
18
private:
19
    Ui::HlavniOkno *ui;
20
public slots:
21
    void secti();
22
};
23
 
24
#endif // HLAVNIOKNO_H
25

 

© 2012 IT blog Suffusion theme by Sayontan Sinha