Zásadní widget, který lze vidět v několika programech, je ComboBox. Uživatel dostane seznam alternativ, ze kterých si může vybrat. Má několik hodnot a vždy zobrazuje pouze jednu. Dnešní tutoriál se bude zabývat tím, jak používat ComboBox v Linuxu pomocí Tkinter.
Příklad 1:
Začněme s úplně prvním příkladem modulu Tkinter v Pythonu. Přes terminálovou konzoli vytvoříme nový soubor Python s příponou „py“. Poté můžete pomocí libovolného editoru otevřít nově vygenerovaný soubor Python z průzkumníku souborů. Tento kód Pythonu začínáme importem knihovny Tkinter do kódu spolu se všemi jejími dílčími objekty, třídami a vestavěnými entitami.
Importujeme jeho ttk objekt, který bude použit v kódu. Nejprve zavoláme funkci Tk() Tkinter, abychom přidali novou hodnotu pro objekt „t“. Objekt „t“ se používá k volání funkce geometrie k vytvoření grafického uživatelského rozhraní „200×150“. V tomto prvním příkladu používáme metodu „frame()“ Tkinteru k vytvoření rámce GUI na obrazovce konzoly. Objekt „f“ rámce je zde uzavřen pomocí funkce Tkinter pack().
Poté vytvoříme seznam „l“ typů řetězců obsahující celkem 5 řetězcových hodnot. Poté použijeme objekt Tkinter ttk k volání funkce ComboBox Tkinter v rámci „f“. Je mu předán seznam „l“. Tento ComboBox se uloží do proměnné „C“. Štítek ComboBoxu nastavíme pomocí funkce „set“ a zabalíme ComboBox přesnými vycpávkami. Nyní spustíme funkci mainloop() pro spuštění celého programu Tkinter.
Po dokončení skriptu Python uložíme kód pomocí Ctrl+S a vrátíme se zpět do shell konzole systému Linux. Vyzkoušíme instrukci Python3 v shellu následovanou názvem souboru Python, abychom provedli soubor, jak je zobrazeno v následujícím textu:
$ python3 test.py
Po provedení dotazu získáme na obrazovce naší konzole následující GUI Tkinter s názvem „tk“. Obrazovka GUI obsahuje comboBox, tedy rozevírací seznam s názvem „Vyberte 1 barvu“ a znakem trojúhelníku pro jeho otevření.
Po klepnutí na trojúhelník se zobrazí dlouhý rozevírací seznam se všemi dostupnými možnostmi. Můžete vidět, že máme na výběr celkem 5 možností.
Řekněme, že si z rozevíracího seznamu vyberete barvu „Černá“. Uvidíte, že vybraná barva se zobrazí v oblasti názvu rozevíracího seznamu ComboBox. Zbývající seznam je skrytý.
Příklad 2:
Podívejme se tentokrát na další příklad s použitím jiné metody k vytvoření ComboBoxu v Tkinter. Tento kód Pythonu tedy začínáme importem modulu Tkinter do stejného souboru Python jako „tk“ a importem jeho třídy ttk. Poté importujeme funkci showinfo() z třídy zpráv modulu Tkinter. Také importujeme proměnnou month_name z kalendářového modulu Pythonu.
Zavoláme funkci tk() s objektem tk modulu Tkinter a výsledek konstruktoru uložíme do proměnné „t“. Funkce geometrie je volána se zadanými parametry pro vytvoření GUI Tkinter se specifickou velikostí. Funkce title() je volána s parametrem „Ilustrace comboboxu“ pro pojmenování GUI Tkinter a funkce Label z třídy ttk pro vytvoření štítku „l“. Funkce balení se používá k vyplnění štítku „l“. Proměnná „mn“ je vytvořena pomocí funkce StringVar() třídy „tk“. ComboBox „mcb“ je vytvořen pomocí funkce ComboBox a proměnného textu „mn“. ComboBox mcb se plní řetězcovými hodnotami až do 13 prostřednictvím proměnné month_name používané v rámci cyklu „for“.
Stav ComboBoxu „mcb“ je nastaven pouze pro čtení a je zabalen. Funkce select() je vytvořena pro volání funkce showinfo() pro vytvoření výstražného dialogového okna s názvem „Potvrzení“ a zprávou „Vybrali jste {jakékoli hodnoty}. Funkce bind() se volá s ComboBoxem „mcb“ přidáním parametrů „ComboboxSelected“ a funkce „change“. Funkce mainloop() je spuštěna, aby smyčka z programu Tkinter. Před spuštěním si to nejprve uložíme.
Tento soubor spustíme pomocí dotazu python3.
$ krajta 3 test.py
Následující obrazovka Tkinter s názvem „Ilustrace ComboBox“ se objeví v následujícím:
Když klikneme na trojúhelníkový znak ComboBox pod názvem „Vyberte měsíc“, zobrazí se názvy měsíců.
Když vybereme „Červenec“, zobrazí se na štítku a zobrazí se dialogové upozornění a zpráva. Pokračujte stisknutím tlačítka Ok.
Závěr
Je to celé o použití modulu Tkinter v Pythonu k vytvoření comboBoxu v okně GUI. Za tímto účelem jsme vyzkoušeli dva jednoduché, ale odlišné příklady Pythonu, abychom dosáhli cíle pomocí funkce frame() a konvenčního způsobu vytváření comboBoxu v GUI. Začlenili jsme ukázkové kódy pro obě instance a po provedení kódů jsme provedli několik změn.