.. _Label: Label ===== Label patří k důležitým widgetům. Umožňuje zobrazení textu, který je needitovatelný uživatelem. Jeho výhodou je velká možnost formátování textu. V následujícím příkladu si ukážeme pouze pár možností a také si představíme možnost nastavení tlačítka na dva stavy. :: import sys from PyQt4 import QtGui,QtCore class Main_Window(QtGui.QWidget): def __init__(self): super(Main_Window,self).__init__() self.setup_ui() def setup(self): self.lbl = QtGui.QLabel("hezky text",parent = self) self.lbl.resize(self.lbl.sizeHint()) self.lbl.setAlignment(QtCore.Qt.AlignCenter) První částí kódu se nebudeme moc zabývat a vrhneme se na metodu setup. Jako první si vytvoříme objekt ``lbl`` za pomoci konstuktoru ``QLabel(text,rodič)``. Stejně jako v minulém příkladu si musíme nastavit velikost ``lbl`` pomocí metody ``resize``. A nastavíme jí zarovnání na střed jako v prvním příkladu. :: self.re_button = QtGui.QPushButton("red",parent=self) self.re_button.setCheckable(True) self.re_button.resize(self.re_button.sizeHint()) self.re_button.clicked.connect(self.zmena) self.it_button = QtGui.QPushButton("kurziva",parent=self) self.it_button.setCheckable(True) self.it_button.resize(self.it_button.sizeHint()) self.it_button.clicked.connect(self.zmena) self.tu_button = QtGui.QPushButton("tucne",parent=self) self.tu_button.setCheckable(True) self.tu_button.resize(self.tu_button.sizeHint()) self.tu_button.clicked.connect(self.zmena) self.po_button = QtGui.QPushButton("podtrhnute",parent=self) self.po_button.setCheckable(True) self.po_button.resize(self.po_button.sizeHint()) self.po_button.clicked.connect(self.zmena) V tomto kódu vytváříme několik tlačítek. Dále jim nastavujeme velikost a vytváříme u každého z nich vazbu na metodu ``zmena``. Tento postup je známý z předchozích příkladů. Každé tlačítko je nastavené metodou ``setCheckable(True/False)`` na to, aby bylo schopno přepínání mezi dvěmi stavy. :: grid=QtGui.QGridLayout() grid.addWidget(self.lbl,0,0,1,0) grid.addWidget(self.re_button,1,0,) grid.addWidget(self.it_button,1,1,) grid.addWidget(self.tu_button,2,0) grid.addWidget(self.po_button,2,1) self.setLayout(grid) self.setWindowTitle("stisknute tlacitko") self.show() V poslední části metody setup jako obvykle nastavíme rozvržení našeho hlavního okna a okno zobrazíme. :: def zmena(self): font= QtGui.QFont() if self.it_button.isChecked(): font.setItalic(True) self.lbl.setFont(font) else: font.setItalic(False) self.lbl.setFont(font) if self.tu_button.isChecked(): font.setBold(True) self.lbl.setFont(font) else: font.setBold(False) self.lbl.setFont(font) if self.po_button.isChecked(): font.setUnderline(True) self.lbl.setFont(font) else: font.setUnderline(False) self.lbl.setFont(font) if self.re_button.isChecked(): self.lbl.setStyleSheet("color:red") else: self.lbl.setStyleSheet("color:black") V této metodě si jako první vytvoříme objekt ``font`` pomocí konstruktoru ``QFont``. Tímto objektem budeme ovlivňovat vzhled textu našeho objektu ``lbl``. V každé z podmínek se zeptáme, v jakém stavu je dané tlačítko. Toho dosáhneme pomocí metody ``isChecked``. Podle toho nastavíme náš objekt ``lbl``. Nyní si řekneme něco o metodách, kterými nastavujeme vzhled. ``SetItalic`` nastavuje, jestli bude text napsán kurzívou. ``SetBold`` nastavuje tučný text. ``SetUnderline``` nastavuje podtržení textu. V případě těchto metod nastavujeme tyto hodnoty objektu ``font``, který poté použijeme jako parametr pro ``setFont(QFont)`` metody, kterou nastavíme vzhled fontu v objektu ``lbl``. ``SetStyleSheet`` nastavuje mnoho věcí, neboť je založený na CSS, který můžete znát z kódování stránek a proto podporuje velmi podobnou syntaxi. V našem případě jim nastavujeme barvu.