title: Big Yes No Dialog tags: py qt pyside style css This illustrates using css stylesheets to style buttons. ![]{cs}(BigYesNoDialog_001.png) ```py #!/usr/bin/env python from icecream import ic; ic.configureOutput(includeContext=True) from PySide6.QtCore import * from PySide6.QtGui import * from PySide6.QtWidgets import * from PySide6.QtNetwork import * app = QApplication() class Rv: 'Container for a value, nominally the return value, rather than assigning to a global variable within methods' def __init__(self): self.value = 0 def set(self,x): self.value = x def __call__(self): return self.value rv = Rv() # return value rv.set(3) # 3 will be return value of close button is clicked class Buts(QWidget): def __init__(self): super().__init__() self.resize(800,400) self.yes = QPushButton(self) self.yes.setText("Yes") self.yes.resize(400,400) self.yes.move(400,0) ss = lambda t: f"color: white; background-color: #{t}; font-family: Optima, 'Adobe Caslon Pro', serif; font-size: 64px;" self.yes.setStyleSheet(ss("070")) self.no = QPushButton(self) self.no.setText("No") self.no.resize(400,400) self.no.setStyleSheet(ss("700")) self.yes.clicked.connect(self.do_yes) self.no.clicked.connect(self.do_no) def do_yes(self,*xs,**kw): rv.set(0) app.quit() return def do_no(self,*xs,**kw): rv.set(1) app.quit() return def keyPressEvent(self,e): key = e.key() key = QKeySequence(key).toString().lower() match key: case "q": rv.set(2) app.quit() return case "y": return self.do_yes() case "n": return self.do_no() return super().keyPressEvent(e) buts = Buts() buts.show() app.exec() exit(rv()) ```