- Tkinter GUI Application Development Blueprints(Second Edition)
- Bhaskar Chaudhary
- 223字
- 2021-06-24 18:35:13
The number of units and beats per unit features
We earlier coded the matrix called create_right_button_matrix, which creates a two-dimensional matrix with the number of rows equal to MAX_NUMBER_OF_DRUM_SAMPLES. The number of columns would be decided by multiplying the number of units by the beats per unit values selected by the end user. Its formula can be given as follows:
Number of columns of buttons = Number of units x BPU

This means that every time the user changes the number of units or the beats per unit, the button matrix should be redrawn to change the number of columns. This change should also be reflected in our underlying data structure. Let's add this feature to our drum machine.
We had earlier defined two dummy methods—on_number_of_units_changed() and on_bpu_changed(). We modify them now as follows (see code 3.04.py):
def on_number_of_units_changed(self):
self.set_number_of_units()
self.set_is_button_clicked_list(MAX_NUMBER_OF_DRUM_SAMPLES,
self.find_number_of_columns())
self.create_right_button_matrix()
def on_bpu_changed(self):
self.set_bpu()
self.set_is_button_clicked_list(MAX_NUMBER_OF_DRUM_SAMPLES,
self.find_number_of_columns())
self.create_right_button_matrix()
The preceding methods do two things:
- Modify the data structure to reflect the changes in BPU or number of units
- Call the create_right_button_matrix() method to recreate the button matrix
Now if you go and run the code (see code 3.04.py) and change either the values of number of units or BPU, the button matrix should redraw itself to reflect the change.
- PostgreSQL for Data Architects
- Clojure for Domain:specific Languages
- 精通搜索分析
- Learning Informatica PowerCenter 10.x(Second Edition)
- Mastering Yii
- Quarkus實踐指南:構建新一代的Kubernetes原生Java微服務
- Learning ELK Stack
- Learning ArcGIS for Desktop
- 青少年信息學競賽
- CoffeeScript Application Development Cookbook
- PHP+Ajax+jQuery網站開發項目式教程
- 運維前線:一線運維專家的運維方法、技巧與實踐
- 深入實踐Kotlin元編程
- Xcode 6 Essentials
- Windows Phone 8 Game Development