Trochu mě vylekala ta návratová hodnota QMessageBoxu podle pozice tlačítka, to nevypadá moc šikovně, ale dokumentace Qt uvádí ještě jednu možnost, jak testovat návratovou hodnotu dialogu s tlačítkem přidaným pomocí addButton:
msgBox = QMessageBox()
msgBox.setText(u'Zpráva')
connectButton = msgBox.addButton("Connect", QMessageBox.ActionRole)
abortButton = msgBox.addButton(QMessageBox.Abort)
msgBox.exec_()
if msgBox.clickedButton() == connectButton:
print('CONNECT')
elif msgBox.clickedButton() == abortButton:
print('ABORT')
V tvem pripade jde o pokus o flame takze ignoruj, ale kdyby to zajimalo nekoho dalsiho:
https://en.wikipedia.org/wiki/Category:Software_that_uses_Qt
a jen tak mimochodem to pouzivaji v Tesle pro jejich UI ;)
No jo, ale to použité téma je vážně odrazující a navíc budí dojem, že jde o GTK aplikaci...
Jinak super seriál. Pokud mám dát nějaký podnět, tak mi seriál možná přijde až moc encyklopedicky popisný - možná bych víc rozšířil o hodnotící části, jako třeba který UI prvek na co kdy použít (u složitějších komponent) a jaká jsou omezení a úskalí čí zkušenosti z praktického nasazení.
Tak je pravda, že na desktopu mám velmi minimalistické nastavení, ale to se klidně může změnit. Jde asi o dvě věci - dekorace oken, ty si řeší window manažer nebo DE (mám "jen" Fluxbox, takže dekorace minimální) a potom vykreslení samotných widgetů, které se řeší styly Qt. Příště zkusím použít jiný styl, teď jde o to který :-) Určitě ne Motif. A taky už je čas se zmínit o možnosti použití CSS, takže asi také příště.
S hodnocením UI prvků - hmm zkusím promyslet, to je velmi dobrá připomínka. Ono i u jednoduchých prvků nemusí být vždycky jasné, který použít - typicky rozdíl radio button versus krátký kombo box (už vůbec nepočítám list box versus tři tlačítka, jak to dodnes mají Windows u vypínacího dialogu). Oba prvky mají své výhody a zápory a taky záleží na uživatelích, jak jsou zběhlí v ovládání GUI.
No já jsem taky stará konzerva, pamatuju i OWL, nejenom Delphi :-)
Ale vážně - narážíš na to, že je to Qt, nebo na volbu stylu? To druhé je možné změnit, styly se týkají barev, tvarů widgetů i popř. textur.
Na začátek všech příkladů z článku stačí doplnit (například):
def main():
QtGui.QApplication.setStyle("plastique")
app = QtGui.QApplication(sys.argv)
MainWindow().run(app)