- Tkinter GUI Application Development Blueprints(Second Edition)
- Bhaskar Chaudhary
- 370字
- 2021-06-24 18:35:12
Setting up the GUI in OOP
The text editor we developed in the previous chapter was implemented in procedural code. Although it offered some benefits for quick coding, it had some typical limitations:
- We started encountering global variables
- The function definitions needed to be defined above the code that called them
- Most importantly, the code was not reusable
Therefore, we need some way to ensure that our code is reusable. This is why programmers prefer to use object-oriented programming (OOP) to organize their code into classes.
OOP is a programming paradigm that shifts the focus onto the objects we want to manipulate rather than the logic required to manipulate them. This is in contrast to procedural programming, which views a program as a logical procedure that takes input, processes it, and produces some output.
OOP provides several benefits, such as data abstraction, encapsulation, inheritance, and polymorphism. In addition, OOP provides a clear modular structure for programs. Code modification and maintenance are easy, as new objects can be created without modifying the existing ones.
Let's build our drum program using OOP to illustrate some of these features. An indicative OOP structure for our drum program could be as follows (code 3.01.py):
from tkinter import Tk
PROGRAM_NAME = ' Explosion Drum Machine '
class DrumMachine:
def __init__(self, root):
self.root = root
self.root.title(PROGRAM_NAME)
if __name__ == '__main__':
root = Tk()
DrumMachine(root)
root.mainloop()
The description of the code is as follows:
- We create a class structure called DrumMachine and initialize the Toplevel window passed as an argument to it
- If the script is run as a standalone program, that is, if __name__ == '__main__', a new Tk() root object is created and the root window is passed as an argument to the DrumMachine object
- We then initiate an object from the DrumMachine class to get a Toplevel window
Now that we have our Toplevel window ready, let's stop adding any more visual elements and think about something that is critical to how well our program will eventually turn out to be. Let's spend some time finalizing the data structure for our program.
- 自制編譯器
- Unity 2020 Mobile Game Development
- Python從入門到精通(精粹版)
- Java面向?qū)ο蟪绦蜷_(kāi)發(fā)及實(shí)戰(zhàn)
- Mastering Ubuntu Server
- 用Flutter極速構(gòu)建原生應(yīng)用
- Microsoft Dynamics GP 2013 Reporting, Second Edition
- 實(shí)戰(zhàn)Java高并發(fā)程序設(shè)計(jì)(第3版)
- C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)指導(dǎo)與習(xí)題解答
- Visual FoxPro程序設(shè)計(jì)
- Python Data Structures and Algorithms
- 創(chuàng)意UI:Photoshop玩轉(zhuǎn)APP設(shè)計(jì)
- 交互式程序設(shè)計(jì)(第2版)
- PHP+MySQL動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)從入門到精通(視頻教學(xué)版)
- Mastering OAuth 2.0