Если хочешь что-то посерьёзнее, чем tkinter, взгляни на PyQt или PySide. Да, они сложнее, но возможностей больше и дизайн почище. Вот небольшой примерчик на PyQt:
Программный код:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QPushButton
class Calculator(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Calculator')
self.setGeometry(100, 100, 280, 170)
layout = QVBoxLayout()
self.result = QLineEdit()
layout.addWidget(self.result)
btn_calc = QPushButton('Calculate')
btn_calc.clicked.connect(self.calculate)
layout.addWidget(btn_calc)
self.setLayout(layout)
def calculate(self):
try:
res = eval(self.result.text())
self.result.setText(str(res))
except:
self.result.setText('Error')
if __name__ == '__main__':
app = QApplication(sys.argv)
calc = Calculator()
calc.show()
sys.exit(app.exec_())
Конечно, код побольше, чем в tkinter, но и возможностей больше.