در این مطلب، ویدئو کدنویسی تایمر شمارش معکوس در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:18:01
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:04,190 –> 00:00:09,040
[موسیقی]
2
00:00:09,040 –> 00:00:10,639
بچهها به چه اتفاقی میافتد خوش آمدید در
3
00:00:10,639 –> 00:00:12,240
این ویدیو که یک
4
00:00:12,240 –> 00:00:15,120
تایمر شمارش معکوس ساده برای ویندوز در پایتون
5
00:00:15,120 –> 00:00:16,239
میسازیم، بنابراین یک
6
00:00:16,239 –> 00:00:17,520
رابط کاربری گرافیکی خواهیم داشت که میتوانیم آن را
7
00:00:17,520 –> 00:00:19,520
وارد کنیم و سپس آن را وارد کنیم. شمارش معکوس می
8
00:00:19,520 –> 00:00:21,119
کند و سپس
9
00:00:21,119 –> 00:00:24,320
صدای زنگ هشدار پخش می شود یا یک اعلان نشان می دهد، بنابراین
10
00:00:24,320 –> 00:00:25,760
به نظر می رسد که اجازه
11
00:00:25,760 –> 00:00:28,000
دهید اینجا را به مثالی که قبلاً آماده کرده ام تغییر دهم
12
00:00:28,000 –> 00:00:30,400
و اگر این را اجرا
13
00:00:30,400 –> 00:00:32,399
کنم، در عرض یک ثانیه این
14
00:00:32,399 –> 00:00:34,960
رابط کاربری گرافیکی را در اینجا خواهید دید. بر اساس tk inter
15
00:00:34,960 –> 00:00:37,600
و در اینجا من فقط می توانم
16
00:00:37,600 –> 00:00:40,320
80 000 ثانیه را بگذرانم به عنوان مثال اکنون این
17
00:00:40,320 –> 00:00:43,280
می شود 22 ساعت و 13 دقیقه و چند
18
00:00:43,280 –> 00:00:45,280
ثانیه می توانم این کار را متوقف کنم، همچنین می توانم
19
00:00:45,280 –> 00:00:47,280
قالبی مانند این ارائه دهم تا هفت
20
00:00:47,280 –> 00:00:48,879
ساعت به عنوان
21
00:00:48,879 –> 00:00:51,760
مثال 10 دقیقه و 22 ثانیه
22
00:00:51,760 –> 00:00:53,199
شروع کنید
23
00:00:53,199 –> 00:00:55,520
، میتوانم این کار را با یک دقیقه اینجا انجام
24
00:00:55,520 –> 00:00:57,280
دهم، و همچنین میتوانم این کار را با یک
25
00:00:57,280 –> 00:00:59,680
دقیقه در اینجا انجام دهم، بنابراین به درستی تجزیه میشود
26
00:00:59,680 –> 00:01:01,760
و اگر مثلاً چیزی حدود
27
00:01:01,760 –> 00:01:03,600
دو ثانیه وارد کنم، فقط
28
00:01:03,600 –> 00:01:06,320
وقتی تمام شد شمارش معکوس میکند، ما میرویم
29
00:01:06,320 –> 00:01:08,479
برای بدست آوردن این زمان تایمر شمارش معکوس
30
00:01:08,479 –> 00:01:10,880
اعلان به پایین در اینجا در سمت راست است و
31
00:01:10,880 –> 00:01:12,560
اگر بخواهید می توانید صدا را نیز پخش
32
00:01:12,560 –> 00:01:14,400
کنید، من به شما نشان خواهم داد که چگونه
33
00:01:14,400 –> 00:01:16,320
اکنون به خاطر داشته باشید که این اعلان
34
00:01:16,320 –> 00:01:18,320
در اینجا مختص ویندوز است و هر چیز
35
00:01:18,320 –> 00:01:20,400
دیگری در لینوکس نیز کار می کند. اما اگر
36
00:01:20,400 –> 00:01:22,159
میخواهید این اعلان پاپآپ را داشته
37
00:01:22,159 –> 00:01:24,560
باشید، باید از کتابخانه ویندوز 10 استفاده کنید،
38
00:01:24,560 –> 00:01:26,560
علاوه بر اینکه این اعلان مستقل از پلتفرم است،
39
00:01:26,560 –> 00:01:28,320
اما در عنوان میگوید احتمالاً
40
00:01:28,320 –> 00:01:30,159
میگوید windows زیرا این یک
41
00:01:30,159 –> 00:01:31,439
ویژگی ویندوز است،
42
00:01:31,439 –> 00:01:32,320
بنابراین
43
00:01:32,320 –> 00:01:33,840
اولین کاری که میخواهیم انجام دهیم این است که میخواهیم برای
44
00:01:33,840 –> 00:01:36,640
رفتن به cmd یا ترمینال انتخابی، اما
45
00:01:36,640 –> 00:01:38,000
از آنجایی که این یک ویدیوی ویندوز است،
46
00:01:38,000 –> 00:01:40,320
احتمالاً از cmd استفاده می
47
00:01:40,320 –> 00:01:42,399
کنیم و می گوییم pip install
48
00:01:42,399 –> 00:01:44,799
win10 toast این چیزی است که
49
00:01:44,799 –> 00:01:46,320
برای اعلان نان تست که دیدیم به آن نیاز داریم.
50
00:01:46,320 –> 00:01:48,640
و آنچه که میتوانید از آن استفاده کنید
51
00:01:48,640 –> 00:01:51,280
، فکر میکنم این مستقل از پلتفرم است،
52
00:01:51,280 –> 00:01:53,360
مطمئن نیستم، اگرچه
53
00:01:53,360 –> 00:01:55,200
ماژول صدای پخش است، این همان چیزی است که
54
00:01:55,200 –> 00:01:57,600
میتوانید برای پخش یک فایل mp3 به عنوان
55
00:01:57,600 –> 00:01:59,360
مثال صدای ساعت زنگ دار استفاده کنید،
56
00:01:59,360 –> 00:02:01,119
بنابراین این دو کتابخانه هستند.
57
00:02:01,119 –> 00:02:02,880
دومی اختیاری است اولین مورد در
58
00:02:02,880 –> 00:02:04,479
واقع اختیاری است شما فقط به
59
00:02:04,479 –> 00:02:06,479
روشی نیاز دارید تا به
60
00:02:06,479 –> 00:02:08,318
کاربر بگویید که شمارش معکوس اکنون تمام شده است
61
00:02:08,318 –> 00:02:09,758
شما باید صدایی را پخش کنید و همچنین می توانید
62
00:02:09,758 –> 00:02:11,440
از صدای pi استفاده کنید اما نصب
63
00:02:11,440 –> 00:02:13,599
بسیار دردسرساز است بنابراین من این کار را نکردم. نمیخواهیم از
64
00:02:13,599 –> 00:02:15,599
صدای uh pi در این ویدیو استفاده کنیم
65
00:02:15,599 –> 00:02:16,879
و وقتی متوجه شدیم که
66
00:02:16,879 –> 00:02:20,400
میخواهیم threading را وارد کنیم،
67
00:02:20,400 –> 00:02:22,879
زمان را وارد میکنیم، میخواهیم
68
00:02:22,879 –> 00:02:26,640
uh tk inter stk را وارد کنیم و همچنین
69
00:02:26,640 –> 00:02:28,000
از
70
00:02:28,000 –> 00:02:32,640
win 10 ذخیره میکنیم. نان تست، اعلان کننده نان تست را وارد کنید
71
00:02:32,640 –> 00:02:34,720
و البته اگر انتخاب کنید که
72
00:02:34,720 –> 00:02:38,800
از صدای پخش از پخش صدا استفاده کنید،
73
00:02:38,959 –> 00:02:41,519
پخش صدا را وارد کنید،
74
00:02:41,519 –> 00:02:43,599
مانند آن صدا را پخش کنید،
75
00:02:43,599 –> 00:02:45,599
من نظر خواهم داد زیرا قرار نیست
76
00:02:45,599 –> 00:02:47,040
از آن استفاده کنم، واقعاً فقط نشان می دهم
77
00:02:47,040 –> 00:02:48,160
به طور خلاصه به شما می
78
00:02:48,160 –> 00:02:50,319
گوییم و کاری که اکنون می خواهیم انجام دهیم این است که
79
00:02:50,319 –> 00:02:52,319
می خواهیم یک کلاس برای این
80
00:02:52,319 –> 00:02:54,480
تایمر شمارش معکوس ایجاد کنیم زیرا
81
00:02:54,480 –> 00:02:56,720
وقتی با عناصر رابط کاربری کار می کنیم اغلب
82
00:02:56,720 –> 00:02:58,720
این عناصر را تعریف می کنیم، یک
83
00:02:58,720 –> 00:03:00,560
دکمه ایجاد می کنیم و یک برچسب ایجاد می کنیم و سپس
84
00:03:00,560 –> 00:03:03,040
توابعی داریم. و یک دکمه باید بتواند به
85
00:03:03,040 –> 00:03:04,800
یک تابع دسترسی داشته باشد زیرا اینطور است چه چیزی را
86
00:03:04,800 –> 00:03:06,879
می خواهید
87
00:03:06,879 –> 00:03:08,239
دستور دکمه را روی تابع تنظیم کنید اما سپس
88
00:03:08,239 –> 00:03:10,080
تابع باید به عناصر رابط کاربری دسترسی پیدا کند
89
00:03:10,080 –> 00:03:11,760
و سپس همه چیز به هم می خورد و
90
00:03:11,760 –> 00:03:14,560
گاهی اوقات حتی نمی توانید آن را انجام دهید بنابراین در
91
00:03:14,560 –> 00:03:16,400
یک شی فقط می توانید به شی خود مراجعه کنید.
92
00:03:16,400 –> 00:03:19,360
و این کار را بسیار آسانتر میکند،
93
00:03:19,360 –> 00:03:21,840
بنابراین با گفتن
94
00:03:21,840 –> 00:03:25,040
تایمر شمارش معکوس کلاس شروع
95
00:03:25,040 –> 00:03:27,040
میکنیم و تابع init
96
00:03:27,040 –> 00:03:28,720
بسیار ساده خواهد بود،
97
00:03:28,720 –> 00:03:30,480
حالا لزوماً کوتاه
98
00:03:30,480 –> 00:03:31,920
نیست، اما کاملاً ساده است، ما
99
00:03:31,920 –> 00:03:35,920
میخواهیم یک شی ریشه را تعریف کنیم تا ریشه خود نقطهای
100
00:03:35,920 –> 00:03:37,959
این tk.tk خواهد
101
00:03:37,959 –> 00:03:40,959
بود و سپس می گوییم self.root.geometry
102
00:03:40,959 –> 00:03:44,280
103
00:03:44,319 –> 00:03:46,640
شما می توانید این را هر طور که می خواهید
104
00:03:46,640 –> 00:03:50,239
برای چیزی که من آماده کردم طراحی کنید. من از 460×220 استفاده کردم
105
00:03:50,239 –> 00:03:51,680
این همان چیزی است که در
106
00:03:51,680 –> 00:03:55,439
نمایش دیدید و سپس self.root .title
107
00:03:55,439 –> 00:03:58,799
uh مانند آن فقط تایمر شمارش معکوس خواهد بود،
108
00:03:58,799 –> 00:04:01,280
حالا ما می خواهیم چند عنصر رابط کاربری اضافه
109
00:04:01,280 –> 00:04:03,200
کنیم، این یک جعبه ورودی که
110
00:04:03,200 –> 00:04:05,200
دو دکمه داشتیم و یک برچسب
111
00:04:05,200 –> 00:04:08,000
با زمان داشتیم، بنابراین می خواهیم بگوییم self.time
112
00:04:08,000 –> 00:04:11,840
ورود به tk ورودی خواهد بود
113
00:04:11,840 –> 00:04:13,760
و در اینجا ما به p ass
114
00:04:13,760 –> 00:04:15,920
self.root به عنوان والد ما به
115
00:04:15,920 –> 00:04:17,040
116
00:04:17,040 –> 00:04:18,238
117
00:04:18,238 –> 00:04:21,198
عنوان یک فونت
118
00:04:21,358 –> 00:04:23,840
helvetica
119
00:04:23,840 –> 00:04:25,759
30 را ارسال می کنیم
120
00:04:25,759 –> 00:04:28,240
و سپس ورودی self.time
121
00:04:28,240 –> 00:04:30,080
در طرح شبکه قرار می گیرد
122
00:04:30,080 –> 00:04:31,840
سطر صفر می شود ستون
123
00:04:31,840 –> 00:04:34,320
صفر می شود و دهانه ستون
124
00:04:34,320 –> 00:04:36,000
125
00:04:36,000 –> 00:04:38,400
دو خواهد بود و ما یک لایه x
126
00:04:38,400 –> 00:04:40,560
و یک بالشتک
127
00:04:40,560 –> 00:04:43,600
y از پنج را
128
00:04:43,600 –> 00:04:45,759
فقط برای چیدمان خواهیم داشت زیرا در غیر این
129
00:04:45,759 –> 00:04:48,080
صورت هیچ فاصله ای
130
00:04:48,080 –> 00:04:50,320
بین عناصر نخواهیم داشت و اکنون می خواهیم
131
00:04:50,320 –> 00:04:51,919
132
00:04:51,919 –> 00:04:54,320
دکمه start self-dot خیلی خیلی ساده
133
00:04:54,320 –> 00:04:56,240
اینجاست، من یک آموزش tk برای شما دارم، اگر
134
00:04:56,240 –> 00:04:58,400
این برای شما کاملاً جدید
135
00:04:58,400 –> 00:05:00,720
136
00:05:00,720 –> 00:05:02,800
137
00:05:02,800 –> 00:05:04,720
138
00:05:04,720 –> 00:05:08,080
است. همان فونت در واقع
139
00:05:08,080 –> 00:05:10,960
بنابراین ما میخواهیم بگوییم خود اوه نه،
140
00:05:10,960 –> 00:05:14,080
میخواهیم بگوییم فونت دوباره برابر با helvetica
141
00:05:14,080 –> 00:05:16,800
30 است، مانند اینکه متن دکمه
142
00:05:16,800 –> 00:05:18,320
شروع میشود
143
00:05:18,320 –> 00:05:20,080
و فرمان دکمه
144
00:05:20,080 –> 00:05:22,720
به نقطه خود اشاره میکند. شروع
145
00:05:22,720 –> 00:05:24,160
موضوع ما قصد داریم آن تابع را تعریف
146
00:05:24,160 –> 00:05:26,160
کنیم که هنوز آن را نداریم حالا چرا
147
00:05:26,160 –> 00:05:28,000
موضوع شروع شود زیرا اگر شما
148
00:05:28,000 –> 00:05:30,160
این را در یک رشته اجرا نمی کنید، عملکرد نقطه زمانی خواب
149
00:05:30,160 –> 00:05:32,000
مسدود می شود، آن
150
00:05:32,000 –> 00:05:33,600
موضوع اصلی را مسدود می کند و
151
00:05:33,600 –> 00:05:35,360
نمی توانید
152
00:05:35,360 –> 00:05:37,199
با رابط کاربری کار کنید، نمی توانید
153
00:05:37,199 –> 00:05:38,639
دکمه ها را فشار دهید
154
00:05:38,639 –> 00:05:40,639
در حالی که شمارش معکوس است و در حالی که
155
00:05:40,639 –> 00:05:42,160
شمارش معکوس است. در حال اجرا است زیرا
156
00:05:42,160 –> 00:05:43,759
قرار است یک رشته برای همه چیز داشته باشد و
157
00:05:43,759 –> 00:05:45,440
حتی با وجود اینکه پایتون از
158
00:05:45,440 –> 00:05:47,520
چند رشته ای واقعی پشتیبانی نمی
159
00:05:47,520 –> 00:05:49,280
کند، اما تا حدی از آن پشتیبانی می کند
160
00:05:49,280 –> 00:05:50,960
زیرا لزوماً مفسر را قفل نمی
161
00:05:50,960 –> 00:05:52,800
کند،
162
00:05:52,800 –> 00:05:54,880
بنابراین مجبور می شویم این را اجرا کنیم. در یک
163
00:05:54,880 –> 00:05:56,639
موضوع اضافی
164
00:05:56,639 –> 00:05:57,520
و ما میخواهیم بگوییم
165
00:05:57,520 –> 00:06:00,160
166
00:06:00,160 –> 00:06:02,240
self.startbutton.grit، ردیف این بار
167
00:06:02,240 –> 00:06:05,199
1 خواهد بود، ستون همچنان 0 خواهد بود
168
00:06:05,199 –> 00:06:07,440
و بالشتک مجدداً
169
00:06:07,440 –> 00:06:08,400
5 خواهد بود
170
00:06:08,400 –> 00:06:10,240
و
171
00:06:10,240 –> 00:06:11,759
من قصد دارم کپی کنم که
172
00:06:11,759 –> 00:06:13,840
ما آن را جایگذاری می کنیم، این را
173
00:06:13,840 –> 00:06:16,720
با stop جایگزین
174
00:06:17,199 –> 00:06:18,319
175
00:06:18,319 –> 00:06:21,919
می کنیم و همچنین متن را به stop تغییر می دهیم
176
00:06:21,919 –> 00:06:24,400
177
00:06:24,400 –> 00:06:27,120
و این نیز
178
00:06:27,120 –> 00:06:29,600
در واقع ما به تهدیدی
179
00:06:29,600 –> 00:06:30,880
که می خواهیم تابع stop
180
00:06:30,880 –> 00:06:32,880
را که هنوز نداریم
181
00:06:32,880 –> 00:06:35,759
um را فراخوانی کنید و البته این go است در
182
00:06:35,759 –> 00:06:38,000
ستون دو
183
00:06:38,000 –> 00:06:39,600
و آخرین، اما مهم نیست که ما به برچسب زمان نیاز داریم،
184
00:06:39,600 –> 00:06:41,520
بنابراین
185
00:06:41,520 –> 00:06:45,120
برچسب زمانی tk.label خواهد بود
186
00:06:45,120 –> 00:06:47,120
و این برچسب نیز بخشی
187
00:06:47,120 –> 00:06:49,919
از خود ریشه خواهد بود و مانند بقیه فونت
188
00:06:49,919 –> 00:06:52,560
189
00:06:52,560 –> 00:06:54,080
را خواهد داشت.
190
00:06:54,080 –> 00:06:56,479
مانند این
191
00:06:56,479 –> 00:06:58,400
و متن متن پیشفرض
192
00:06:58,400 –> 00:07:01,680
زمان دو نقطه خواهد بود 0 0 دو نقطه صفر صفر دو
193
00:07:01,680 –> 00:07:03,919
نقطه صفر صفر
194
00:07:03,919 –> 00:07:05,280
مانند آن
195
00:07:05,280 –> 00:07:08,880
و سپس خود dot time label نقطه
196
00:07:08,880 –> 00:07:11,919
شبکه یک سطر دو آخرین سطر
197
00:07:11,919 –> 00:07:14,000
ستون
198
00:07:14,000 –> 00:07:16,080
آه به هر حال این باید باشد یک راست
199
00:07:16,080 –> 00:07:17,520
آره
200
00:07:17,520 –> 00:07:20,080
ستون صفر و
201
00:07:20,080 –> 00:07:23,039
دهانه ستون دو بالشتک x
202
00:07:23,039 –> 00:07:25,360
بالشتک y
203
00:07:25,360 –> 00:07:28,560
پنج است و ما در
204
00:07:28,560 –> 00:07:30,160
اینجا یک متغیر uh خواهیم داشت که برای
205
00:07:30,160 –> 00:07:32,479
206
00:07:32,479 –> 00:07:34,319
uh برای شمارش معکوس مهم خواهد بود زیرا زمانی که ما شمارش معکوس می کنیم
207
00:07:34,319 –> 00:07:36,639
در یک رشته جداگانه
208
00:07:36,639 –> 00:07:38,560
نمی خواهیم بتوانیم این را متوقف کنیم، اما
209
00:07:38,560 –> 00:07:40,720
نمی توانیم فقط بگوییم thread.stop که کار نمی
210
00:07:40,720 –> 00:07:42,960
کند، باید یک
211
00:07:42,960 –> 00:07:44,479
شرط حلقه داشته باشیم که بتوانیم آن را تغییر دهیم و
212
00:07:44,479 –> 00:07:47,280
برای این کار می خواهیم بگوییم توقف حلقه
213
00:07:47,280 –> 00:07:49,599
به طور پیش فرض برابر با false است، ما
214
00:07:49,599 –> 00:07:51,360
می توانیم آن را تغییر دهیم
215
00:07:51,360 –> 00:07:53,360
و سپس ما دوباره حلقه اصلی را
216
00:07:53,360 –> 00:07:54,160
217
00:07:54,160 –> 00:07:56,800
برای رابط کاربری اجرا می
218
00:07:56,800 –> 00:07:58,560
کنیم، اکنون باید توابع را تعریف کنیم که
219
00:07:58,560 –> 00:08:00,960
در واقع شروع uh thread و
220
00:08:00,960 –> 00:08:02,639
تابع stop بسیار ساده هستند، تابع start
221
00:08:02,639 –> 00:08:04,319
thread فقط
222
00:08:04,319 –> 00:08:06,400
تابع start را شروع می کند و در واقع
223
00:08:06,400 –> 00:08:08,240
همه چیز در تابع start،
224
00:08:08,240 –> 00:08:10,479
بنابراین ما یک رشته شروع خواهیم داشت
225
00:08:10,479 –> 00:08:12,960
و این به وضوح بخشی از
226
00:08:12,960 –> 00:08:15,360
خود خواهد بود و می خواهیم یک
227
00:08:15,360 –> 00:08:17,759
رشته جدید در اینجا
228
00:08:17,759 –> 00:08:20,479
با
229
00:08:20,479 –> 00:08:22,720
نقطه شروع خود هدف ایجاد کنیم،
230
00:08:22,720 –> 00:08:24,960
هنوز تابع
231
00:08:24,960 –> 00:08:27,039
آن را نداریم و سپس می رویم. فقط بگوییم شروع به
232
00:08:27,039 –> 00:08:28,400
این صورت است که
233
00:08:28,400 –> 00:08:30,479
def start تابعی خواهد بود که
234
00:08:30,479 –> 00:08:32,000
در
235
00:08:32,000 –> 00:08:33,919
حال حاضر میخواهم آن را پاس
236
00:08:33,919 –> 00:08:37,679
بدهم و stop در واقع فکر میکنم فقط
237
00:08:37,679 –> 00:08:40,958
چیزها را بازنشانی میکنیم و ما میخواهیم
238
00:08:40,958 –> 00:08:43,200
حلقه توقف را به وضوح روی true تنظیم کنیم.
239
00:08:43,200 –> 00:08:45,839
دوباره میخواهیم پیکربندی برچسب زمان
240
00:08:46,000 –> 00:08:48,320
خود نقطهای را
241
00:08:48,320 –> 00:08:50,480
242
00:08:50,480 –> 00:08:52,240
243
00:08:52,240 –> 00:08:54,