<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/feed.php">
        <title>DokuWiki - uop</title>
        <description></description>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/</link>
        <image rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-05-28T21:57:22+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:button&amp;rev=1601642962&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:coin&amp;rev=1665133284&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:draw&amp;rev=1637055384&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:dynamic&amp;rev=1605269347&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:editor&amp;rev=1601923838&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:factory&amp;rev=1607948147&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:file_crc&amp;rev=1643906919&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:file_tree&amp;rev=1643908992&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:graphics_scene&amp;rev=1643909024&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:impl&amp;rev=1604650407&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:introduction&amp;rev=1696326676&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:paint&amp;rev=1603715594&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qt_py_typeinfo&amp;rev=1702311989&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtinventor&amp;rev=1731944114&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtpaint&amp;rev=1696326068&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtproperties&amp;rev=1607979001&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtproperties2&amp;rev=1638870237&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:simple_editor&amp;rev=1601923140&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:singleton&amp;rev=1607245764&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:sql&amp;rev=1643907302&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:strom&amp;rev=1643908937&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:svg&amp;rev=1604517113&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:uop&amp;rev=1760611485&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:visitor&amp;rev=1607977091&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:vmt&amp;rev=1605266059&amp;do=diff"/>
                <rdf:li rdf:resource="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:xml&amp;rev=1604517702&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>DokuWiki</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/</link>
        <url>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:button&amp;rev=1601642962&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-02T12:49:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>button</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:button&amp;rev=1601642962&amp;do=diff</link>
        <description>Třída představující okno s jedním tlačítkem

Vytvoříme třídu Window.


import sys
from PyQt5.QtWidgets import *
 
class Window (QMainWindow) :
 
    def __init__ (self) :
        super().__init__()
        button = QPushButton (self)
        button.setText (&quot;Knoflik&quot;)
        self.setCentralWidget (button)
        
def main () :
    app = QApplication (sys.argv)
    win = Window ()
    win.show ()
    sys.exit (app.exec_())
 
if __name__ == &quot;__main__&quot; :
    main ()</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:coin&amp;rev=1665133284&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-07T09:01:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>coin</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:coin&amp;rev=1665133284&amp;do=diff</link>
        <description>Git repository

&lt;http://gitlab.fjfi.cvut.cz/culikzde/uop-2022&gt;

Instalace

Minimalistický návod na instalaci prosředí Qt Creator ide_qtcreator

Fedora


dnf install SoQt-devel qt-creator 


Ubuntu 20.04, 22.04


apt install libsoqt520-dev qtcreator qtbase5-dev qt5-qmake 


do .pro doplnit


LIBS += -lSoQt -lCoin</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:draw&amp;rev=1637055384&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-16T09:36:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>draw</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:draw&amp;rev=1637055384&amp;do=diff</link>
        <description>draw.pro


QT      += core gui widgets
CONFIG  += c++11
SOURCES += mainwindow.cc
HEADERS +=


mainwindow.cc


#include &lt;QApplication&gt;
#include &lt;QPainter&gt;
#include &lt;QWidget&gt;

class Window : public QWidget
{
public:
    Window (QWidget * parent = nullptr);
    ~Window ();
    virtual void paintEvent (QPaintEvent *event);
};

void Window::paintEvent (QPaintEvent * event)
{
    QPainter painter;
    painter.begin (this);

    int w = this-&gt;width ();
    int h = height ();

    painter.setPen (QColor…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:dynamic&amp;rev=1605269347&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-13T12:09:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dynamic</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:dynamic&amp;rev=1605269347&amp;do=diff</link>
        <description>Přetypování dynamic_cast

Proměnnou typu ukazatel na základní třídu nemůžeme přiřadit do proměnné typu ukazatel na odvozenou třídu.


   Basic * b = new Basic;
   Component * v = b;


Je zřejmé, že objekt typu Basic nemá proměnnou</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:editor&amp;rev=1601923838&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-05T18:50:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>editor</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:editor&amp;rev=1601923838&amp;do=diff</link>
        <description>Editor s obarvováním a doplňováním


from __future__ import print_function

import sys, subprocess

try :
   from PyQt5.QtCore import *
   from PyQt5.QtGui import *
   from PyQt5.QtWidgets import *
   print (&quot;using PyQt5&quot;)
   use_qt5 = True
except :
   from PyQt4.QtCore import *
   from PyQt4.QtGui import *
   print (&quot;using PyQt4&quot;)
   use_qt5 = False

# Windows: pip3 install PyQt5
# Debian, Ubuntu: apt-get install python3-pyqt5
# Fedora: dnf install python3-qt5
# ArchLinux: pacman -S python-pyqt…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:factory&amp;rev=1607948147&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-14T12:15:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>factory</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:factory&amp;rev=1607948147&amp;do=diff</link>
        <description>Návrhové vzory - factory

factory

Factory má za úkol vytvářet instance objektů. 

Ukazatel na třídu Factory slouží jako “proměnná uchovávající konstruktor třídy”

Abstrakní třída Factory

Třída Factory bude obsahovat jen metodu createInstance</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:file_crc&amp;rev=1643906919&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-03T16:48:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>file_crc</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:file_crc&amp;rev=1643906919&amp;do=diff</link>
        <description>import os, sys, time, hashlib
from stat import *

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

def size_str (n) :
    s = str (n)
    while len (s) &lt; 9 :
        s = &quot; &quot; + s
        
    s = s[0:3] + &quot; &quot; + s[3:6] + &quot; &quot; + s[6:]
    return s

def mark (node, col, cond) :
    if cond :
        node.setForeground (col, QColor (&quot;lime&quot;))
    else :
        node.setForeground (col, QColor (&quot;red&quot;))
 
class Window (QMainWindow) :
    
    def __init__ (self) :
     …</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:file_tree&amp;rev=1643908992&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-03T17:23:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>file_tree</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:file_tree&amp;rev=1643908992&amp;do=diff</link>
        <description>Strom zobrazující soubory


from __future__ import print_function
 
import sys
 
try :
   from PyQt5.QtCore import *
   from PyQt5.QtGui import *
   from PyQt5.QtWidgets import *
   print (&quot;using PyQt5&quot;)
except :
   from PyQt4.QtCore import *
   from PyQt4.QtGui import *
   print (&quot;using PyQt4&quot;)
 
# Windows: pip3 install PyQt5
# Debian, Ubuntu: apt-get install python3-pyqt5
# Fedora: dnf install python3-qt5
# ArchLinux: pacman -S python-pyqt5 
 
def variant_to_str (v) :
    if sys.version_info &gt;…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:graphics_scene&amp;rev=1643909024&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-03T17:23:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>graphics_scene</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:graphics_scene&amp;rev=1643909024&amp;do=diff</link>
        <description>import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class ColorButton (QToolButton) :
    def __init__ (self, page, name, color) :
        super().__init__(page)
        self.name = name
        self.color = color
        
        self.setToolTip (name)
        page.addWidget (self)
        
        pixmap = QPixmap (12, 12)
        pixmap.fill (Qt.transparent)

        painter = QPainter (pixmap)
        painter.setPen (Qt.NoPen)
        painter.setBru…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:impl&amp;rev=1604650407&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-06T08:13:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>impl</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:impl&amp;rev=1604650407&amp;do=diff</link>
        <description>C++

Skrývání dat

Data označená klíčovým slovem private jsou dostupná jen metodám z téže třídy.

Ukážeme si, že to je ochrana proti neúmyslnému porušení přístupových práv. 

Pokud si někdo připraví strukturu s podobnými proměnnými, která jsou označena jako</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:introduction&amp;rev=1696326676&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-03T09:51:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>introduction</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:introduction&amp;rev=1696326676&amp;do=diff</link>
        <description>#include &lt;string&gt;
#include &lt;iostream&gt;
using namespace std;

struct Point
{
    std::string name;
    double x, y, z;
    void move (double sx, double sy, double z)
    {
        x = x + sx;
        y += sy;
        this-&gt;z += z;
    }
};

void point_move (Point * self, double sx, double sy, double sz)
{
    self-&gt;x = self-&gt;x + sx;
    self-&gt;y += sy;
    self-&gt;z += sz;
}

int main ()
{
    Point * p = new Point;
    p-&gt;name = &quot;start&quot;;
    p-&gt;x = 1.0;
    p-&gt;y = 2.0;
    p-&gt;z = 0.0;
    p-&gt;move (1…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:paint&amp;rev=1603715594&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-26T12:33:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>paint</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:paint&amp;rev=1603715594&amp;do=diff</link>
        <description>Virtuální metody

V předcházejícím příkladu jsme na různé události reagovali pomocí metod připojených Qt funkcí connect. 

Zkusme si nyní předefinovat nějakou virtuální metodu deklarovanou v nadřazené třídě.

virtuální metoda pro vykreslení vnořeného okénka

Metoda paintEvent</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qt_py_typeinfo&amp;rev=1702311989&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-11T16:26:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>qt_py_typeinfo</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qt_py_typeinfo&amp;rev=1702311989&amp;do=diff</link>
        <description>Typové informace

C++ jako klasický kompilovaný jazyk za běhu programu neumožňuje zjistit jaké jsou metody nějakého objektu. 

Některé knihovny jako Qt nebo OpenInventor případně další programovací jazyky jako Java nebo C# spolu s objekty do programu začleňují typové informace umožňující zjistit seznam metod daného objektu a případně metody zavolat.</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtinventor&amp;rev=1731944114&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-18T15:35:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>qtinventor</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtinventor&amp;rev=1731944114&amp;do=diff</link>
        <description>Typové informace v knihovně Open Inventor

V jazyce C++ si rozsáhlé knihovny sami vytvářejí informace o svých typech (a každá knihovna používá odlišné datové struktury pro typové informace)

Předvedeme si typové informace na příkladu třírozměrných objektů zobrazovaných pomocí knihovny</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtpaint&amp;rev=1696326068&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-03T09:41:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>qtpaint</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtpaint&amp;rev=1696326068&amp;do=diff</link>
        <description>#ifndef VIEW_H
#define VIEW_H

#include &lt;QWidget&gt;

QT_BEGIN_NAMESPACE
namespace Ui { class View; }
QT_END_NAMESPACE

class View : public QWidget
{
    Q_OBJECT

public:
    View(QWidget *parent = nullptr);
    ~View();

private:
    Ui::View *ui;


// QWidget interface
protected:
    void paintEvent(QPaintEvent *event) override;
};

#endif // VIEW_H</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtproperties&amp;rev=1607979001&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-14T20:50:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>qtproperties</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtproperties&amp;rev=1607979001&amp;do=diff</link>
        <description>Qt Properties

Typové informace knihovny Qt, tentokrát v jazyce C++

Strom grafický prvků

Třída TreeItem v proměnné obj uschovává ukazatel na jeden grafický prvek


class TreeItem : public QTreeWidgetItem
{
   public:
      QObject * obj;

      TreeItem () : obj (nullptr) { }
};</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtproperties2&amp;rev=1638870237&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-07T09:43:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>qtproperties2</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:qtproperties2&amp;rev=1638870237&amp;do=diff</link>
        <description>#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include &lt;QMainWindow&gt;
#include &lt;QTableWidgetItem&gt;

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();
    void on_table_itemChanged(QTableWidgetItem *item);

private:
    QObject * obj;
    bool ready = false;
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:simple_editor&amp;rev=1601923140&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-05T18:39:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>simple_editor</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:simple_editor&amp;rev=1601923140&amp;do=diff</link>
        <description>Jednoduchý editor


from __future__ import print_function

import sys, subprocess

try :
   from PyQt5.QtCore import *
   from PyQt5.QtGui import *
   from PyQt5.QtWidgets import *
   print (&quot;using PyQt5&quot;)
   use_qt5 = True
except :
   from PyQt4.QtCore import *
   from PyQt4.QtGui import *
   print (&quot;using PyQt4&quot;)
   use_qt5 = False

# Windows: pip3 install PyQt5
# Debian, Ubuntu: apt-get install python3-pyqt5
# Fedora: dnf install python3-qt5
# ArchLinux: pacman -S python-pyqt5

# ------------…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:singleton&amp;rev=1607245764&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-06T09:09:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>singleton</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:singleton&amp;rev=1607245764&amp;do=diff</link>
        <description>Návrhové vzory - singleton

Nejspíšě nejjednodušším návrhovým vzorem je singleton, třída která může existovat jen v jedné instanci.

Některé knihovny používají singleton pro získání globální konfigurace, kterou nechtějí ukládat do globální proměnné.</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:sql&amp;rev=1643907302&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-03T16:55:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sql</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:sql&amp;rev=1643907302&amp;do=diff</link>
        <description>import sys

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtSql import *

db = QSqlDatabase.addDatabase (&quot;QSQLITE&quot;)
# db.setDatabaseName (&quot;:memory:&quot;)
db.setDatabaseName (&quot;test.sqlite&quot;)
db.open ()

query = db.exec_ (&quot;CREATE TABLE IF NOT EXISTS colors (name TEXT,&quot;
                  &quot;red INTEGER, green INTEGER, blue INTEGER)&quot;)

db.exec_ (&quot;INSERT INTO colors (name, red, green, blue) VALUES (\&quot;blue\&quot;, 0, 0, 255)&quot;)

db.close ()</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:strom&amp;rev=1643908937&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-02-03T17:22:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strom</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:strom&amp;rev=1643908937&amp;do=diff</link>
        <description>import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class Window (QMainWindow) :

    def __init__ (self) :
        super().__init__ ()

        self.widget = QWidget (self)

        self.layout = QVBoxLayout (self.widget)

        self.setCentralWidget (self.widget)

        # self.setFont (QFont (&quot;&quot;, 20))

        self.tree = QTreeWidget (self)
        self.tree.header().setVisible (False)
        self.layout.addWidget (self.tree)

        self.button…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:svg&amp;rev=1604517113&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T19:11:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>svg</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:svg&amp;rev=1604517113&amp;do=diff</link>
        <description>&lt;https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/tiger.svg&gt;


from __future__ import print_function

import os, sys, time
from PyQt5.QtCore    import *
from PyQt5.QtGui     import *
from PyQt5.QtWidgets import *
from PyQt5.QtSvg     import *
from PyQt5.QtNetwork import *

class Window (QMainWindow) :
    def __init__ (self) :
        super (Window, self).__init__ ()
        
        self.view = QSvgWidget ()
        self.setCentralWidget (self.view)
        
        if False :
           s…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:uop&amp;rev=1760611485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-16T10:44:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>uop</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:uop&amp;rev=1760611485&amp;do=diff</link>
        <description>&lt;http://gitlab.fjfi.cvut.cz/culikzde/uop&gt;

&lt;http://gitlab.fjfi.cvut.cz/culikzde/uop-2025&gt;

&lt;http://gitlab.fjfi.cvut.cz/culikzde/uop-2023&gt;

&lt;http://gitlab.fjfi.cvut.cz/culikzde/uop-2022&gt;

Literatura

	*  Mark Summerfield: Rapid GUI Programming with Python and Qt

	*  Bruce Eckel: Thinking in C++, Volume 1

	*  Bruce Eckel: Thinking in C++, Volume 2

	*  Bruce Eckel: Thinking in Patterns in Java

Windows Subsytem for Linux


wsl --list --online
wsl --install Ubuntu

sudo apt update
sudo apt instal…</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:visitor&amp;rev=1607977091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-14T20:18:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>visitor</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:visitor&amp;rev=1607977091&amp;do=diff</link>
        <description>Visitor

V našem příkladě návrhový vzor visitor “navštíví” všechny uzly stromu typu TreeItem a zavolá metodu visit.

Třída TreeItem představující zpracovávané uzly stromu

Třída TreeItem je rozšířením standardní třídy QTreeWidgetItem</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:vmt&amp;rev=1605266059&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-13T11:14:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vmt</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:vmt&amp;rev=1605266059&amp;do=diff</link>
        <description>Tabulka virtuálních metod

Třídy, které mají virtuální metody, obsahují ukazatel na tabulku virtuálních metod. 

Tabulka má pro každou virtuální metodu jednu řádku s ukazatelem na funkci implementující danu metodu. 

Každé virtuální metodě překladač přiřadí číslo řádky v tabulce virtuálních metod.</description>
    </item>
    <item rdf:about="https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:xml&amp;rev=1604517702&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-04T19:21:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>xml</title>
        <link>https://kmlinux.fjfi.cvut.cz/~culikzde/wiki/doku.php?id=uop:xml&amp;rev=1604517702&amp;do=diff</link>
        <description>&lt;https://www.w3schools.com/XML/plant_catalog.xml&gt;


from __future__ import print_function

import os, sys, time
from PyQt5.QtCore    import *
from PyQt5.QtGui     import *
from PyQt5.QtWidgets import *

class Window (QMainWindow) :
    def __init__ (self) :
        super (Window, self).__init__ ()
        
        self.tree = QTreeWidget ()
        self.setCentralWidget (self.tree)
        self.scanXml (&quot;Downloads/plant_catalog.xml&quot;) 
        # https://www.w3schools.com/XML/plant_catalog.xml
   …</description>
    </item>
</rdf:RDF>
