import sys from PySide.QtGui import QApplication, QLabel, QPushButton, QVBoxLayout, QWidget app = QApplication(sys.argv) window = QWidget() layout = QVBoxLayout() label = QLabel("Hello World") layout.addWidget(label) button = QPushButton("Click me!") button.clicked.connect(lambda: label.setText("Button clicked!")) layout.addWidget(button) window.setLayout(layout) window.show() sys.exit(app.exec_())
import sys from PySide.QtGui import * class Calculator(QWidget): def __init__(self): super(Calculator, self).__init__() self.display = QLineEdit() self.display.setReadOnly(True) self.display.setAlignment(Qt.AlignRight) self.display.setMaxLength(15) buttons = [] for i in range(10): buttons.append(QPushButton(str(i))) add_button = QPushButton("+") sub_button = QPushButton("-") mul_button = QPushButton("*") div_button = QPushButton("/") clear_button = QPushButton("C") equals_button = QPushButton("=") button_grid = QGridLayout() button_grid.addWidget(buttons[7], 0, 0) button_grid.addWidget(buttons[8], 0, 1) button_grid.addWidget(buttons[9], 0, 2) button_grid.addWidget(add_button, 0, 3) button_grid.addWidget(buttons[4], 1, 0) button_grid.addWidget(buttons[5], 1, 1) button_grid.addWidget(buttons[6], 1, 2) button_grid.addWidget(sub_button, 1, 3) button_grid.addWidget(buttons[1], 2, 0) button_grid.addWidget(buttons[2], 2, 1) button_grid.addWidget(buttons[3], 2, 2) button_grid.addWidget(mul_button, 2, 3) button_grid.addWidget(buttons[0], 3, 0) button_grid.addWidget(clear_button, 3, 1) button_grid.addWidget(equals_button, 3, 2) button_grid.addWidget(div_button, 3, 3) layout = QVBoxLayout() layout.addWidget(self.display) layout.addLayout(button_grid) self.setLayout(layout) self.setWindowTitle("Calculator") for i in range(10): buttons[i].clicked.connect(lambda value=i: self.buttonClicked(str(value))) add_button.clicked.connect(lambda: self.buttonClicked("+")) sub_button.clicked.connect(lambda: self.buttonClicked("-")) mul_button.clicked.connect(lambda: self.buttonClicked("*")) div_button.clicked.connect(lambda: self.buttonClicked("/")) clear_button.clicked.connect(lambda: self.display.setText("")) equals_button.clicked.connect(lambda: self.calculate()) def buttonClicked(self, text): self.display.setText(self.display.text() + text) def calculate(self): try: result = eval(self.display.text()) self.display.setText(str(result)) except Exception as e: self.display.setText(str(e)) if __name__ == '__main__': app = QApplication(sys.argv) calculator = Calculator() calculator.show() sys.exit(app.exec_())Package library: PySide