در این مطلب، ویدئو استفاده از وراثت برای ساختن رابط کاربری گرافیکی پایتون tkinter با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,490
در این آموزش ویدیویی، میخواهم نگاهی بیندازم به این
2
00:00:02,490 –> 00:00:05,400
که چگونه میتوانیم یک TK را در یک
3
00:00:05,400 –> 00:00:08,580
رابط کاربری گرافیکی با ارث بردن
4
00:00:08,580 –> 00:00:12,540
از کلاس TK inter-frame بسازیم، اجازه دهید
5
00:00:12,540 –> 00:00:14,940
زمان اجرای این برنامه رایانهای را در نظر بگیریم.
6
00:00:14,940 –> 00:00:16,650
7
00:00:16,650 –> 00:00:18,779
جایی که می گوید run روی آن کلیک کنید بیا
8
00:00:18,779 –> 00:00:21,960
پایین و روی run module کلیک کنید یا فقط می توانید
9
00:00:21,960 –> 00:00:25,080
f5 را فشار دهید این
10
00:00:25,080 –> 00:00:27,390
رابط کاربری گرافیکی ظاهر می شود و می توانید ببینید
11
00:00:27,390 –> 00:00:30,300
اینجا یک برچسب داریم در اینجا یک
12
00:00:30,300 –> 00:00:32,940
ورودی داریم اینجا یک دکمه داریم و اینجا
13
00:00:32,940 –> 00:00:35,730
داریم یک برچسب و میتوانید ببینید که
14
00:00:35,730 –> 00:00:38,700
تسکین خوبی دارد حالا چه کاری میتوانم اینجا انجام دهم،
15
00:00:38,700 –> 00:00:41,850
میتوانم وارد این کادر ورودی شوم و میتوانم
16
00:00:41,850 –> 00:00:44,789
نامی را تایپ
17
00:00:44,789 –> 00:00:48,649
کنم که انجام میدهم، نام خودم را تایپ میکنم، بنابراین فیلیپ جونز را تایپ میکنم.
18
00:00:48,649 –> 00:00:51,090
وقتی این کار را انجام میدهم به اینجا میروم
19
00:00:51,090 –> 00:00:53,760
که میگوید روی من کلیک کنید و
20
00:00:53,760 –> 00:00:55,680
رابط کاربری گرافیکی
21
00:00:55,680 –> 00:00:59,160
با گفتن سلام فیلیپ جونز پاسخ میدهد، بنابراین
22
00:00:59,160 –> 00:01:01,079
میتوانید بگویید که سلام فیلیپ جونز
23
00:01:01,079 –> 00:01:04,920
در این برچسب ظاهر میشود، در اینجا میتوانید یک اسکرین شات را ببینید.
24
00:01:04,920 –> 00:01:07,560
از برنامه کامپیوتری و
25
00:01:07,560 –> 00:01:10,560
رابط کاربری گرافیکی قبل از اینکه
26
00:01:10,560 –> 00:01:13,110
وارد شوم هر چیزی در رابط کاربری گرافیکی
27
00:01:13,110 –> 00:01:15,750
باشد، بیایید اکنون نحوه ایجاد رابط کاربری گرافیکی را در نظر بگیریم.
28
00:01:15,750 –> 00:01:19,710
29
00:01:19,710 –> 00:01:22,020
اولین چیزی که باید به آن توجه کرد این است که می توانید ببینید که
30
00:01:22,020 –> 00:01:24,930
من یک فریم نام کلاسی را ایجاد کرده ام
31
00:01:24,930 –> 00:01:28,320
و اگر به اینجا نگاه کنیم، اکنون می توانیم در
32
00:01:28,320 –> 00:01:30,299
قاب براکت ها ببینیم که گویا است. ما
33
00:01:30,299 –> 00:01:33,000
که فریم سوپرکلاس است و
34
00:01:33,000 –> 00:01:36,600
این زیر کلاس در
35
00:01:36,600 –> 00:01:39,689
کلاس فریم hello name است، میتوانید ببینید که من
36
00:01:39,689 –> 00:01:42,780
یک روتین مقداردهی اولیه دارم و همچنین
37
00:01:42,780 –> 00:01:46,290
روشی که روتین اولیهسازی
38
00:01:46,290 –> 00:01:49,229
مسئول اطمینان
39
00:01:49,229 –> 00:01:52,110
از وقوع وراثت است و همچنین مسئول
40
00:01:52,110 –> 00:01:54,560
ایجاد انواع مختلف است. ویجت ها و
41
00:01:54,560 –> 00:01:57,960
قرار دادن آنها در قاب، بنابراین
42
00:01:57,960 –> 00:02:00,810
می توان قاب را روی پنجره بارگذاری کرد
43
00:02:00,810 –> 00:02:03,979
همانطور که در اینجا نشان داده شده است، روال اولیه سازی
44
00:02:03,979 –> 00:02:08,610
همچنین 2 متغیر بین رشته ای TK ایجاد می کند
45
00:02:08,610 –> 00:02:11,430
همانطور که توسط این دو خط کد نشان داده شده است در اینجا
46
00:02:11,430 –> 00:02:13,930
این روشی است
47
00:02:13,930 –> 00:02:16,299
که متعلق به قاب hello name است.
48
00:02:16,299 –> 00:02:19,840
class و ما ترتیبی دادیم که
49
00:02:19,840 –> 00:02:23,829
وقتی کاربر روی این دکمه کلیک می کند، این متد اجرا شود،
50
00:02:23,829 –> 00:02:26,590
اجازه دهید یک پیاده
51
00:02:26,590 –> 00:02:28,719
روی در اجرای این p را در نظر بگیریم.
52
00:02:28,719 –> 00:02:31,870
rogram اولین خطی که باید اجرا شود این است در اینجا
53
00:02:31,870 –> 00:02:34,469
و می بینید که ما در حال ایجاد یک
54
00:02:34,469 –> 00:02:37,359
پنجره هستیم و آن پنجره ای که من از آن
55
00:02:37,359 –> 00:02:41,230
به عنوان پنجره زیر خط خود یاد کرده ام اکنون این خط
56
00:02:41,230 –> 00:02:43,810
نمونه ای از کلاس فریم hello name را ایجاد می
57
00:02:43,810 –> 00:02:47,109
کند و من به آن اشاره می کنم.
58
00:02:47,109 –> 00:02:51,609
به عنوان مثال توسط این قاب نام a so frame
59
00:02:51,609 –> 00:02:54,730
a نام محدود شده به
60
00:02:54,730 –> 00:02:57,370
نمونه کلاس فریم hello name خواهد بود
61
00:02:57,370 –> 00:02:59,829
و در اینجا می توانید ببینید که در حال عبور
62
00:02:59,829 –> 00:03:02,530
از پنجره ای هستیم که در این
63
00:03:02,530 –> 00:03:05,230
خط ایجاد شده است. یک
64
00:03:05,230 –> 00:03:08,590
کلاس همانطور که این خط کد انجام می دهد، سپس
65
00:03:08,590 –> 00:03:10,780
می توانیم به روال اولیه سازی
66
00:03:10,780 –> 00:03:14,829
در کلاسی که
67
00:03:14,829 –> 00:03:17,849
نمونه آن ساخته می شود نگاه کنیم و این
68
00:03:17,849 –> 00:03:20,799
روال اولیه سازی در اینجا و می
69
00:03:20,799 –> 00:03:23,829
توانیم در براکت ها ببینیم که خود داریم و
70
00:03:23,829 –> 00:03:25,930
این پارامتر دیگر را داریم به نام
71
00:03:25,930 –> 00:03:29,349
اکنون وقتی یک نمونه ایجاد می کنیم همانطور که در
72
00:03:29,349 –> 00:03:31,900
اینجا دیده ایم بارها در
73
00:03:31,900 –> 00:03:34,780
ویدیوهای قبلی توضیح داده ایم که هر نمونه یک
74
00:03:34,780 –> 00:03:37,449
شناسه منحصر به فرد دارد و آن شناسه منحصر به فرد
75
00:03:37,449 –> 00:03:40,750
به این پارامتر
76
00:03:40,750 –> 00:03:45,310
در اینجا منتقل می شود.
77
00:03:45,310 –> 00:03:47,319
نمونه ای از پنجره ایجاد شده در
78
00:03:47,319 –> 00:03:50,049
این خط به اینجا منتقل می شود بنابراین این
79
00:03:50,049 –> 00:03:53,229
پارامتر که من پنجره underscore را نامگذاری کرده
80
00:03:53,229 –> 00:03:57,489
ام برای اینکه این زیر کلاس
81
00:03:57,489 –> 00:04:00,370
بتواند ویژگی های این سوپرکلاس را به ارث ببرد،
82
00:04:00,370 –> 00:04:03,729
نیاز داریم که این خط کد
83
00:04:03,729 –> 00:04:06,189
در مقدار اولیه وجود داشته باشد.
84
00:04:06,189 –> 00:04:10,540
روال قاب نام Hello بعلاوه اگر
85
00:04:10,540 –> 00:04:13,569
به این خط نگاه کنیم می بینیم که
86
00:04:13,569 –> 00:04:17,108
این نام سوپرکلاسی است که
87
00:04:17,108 –> 00:04:20,620
می خواهیم از آن به ارث ببریم و چیزی که می
88
00:04:20,620 –> 00:04:23,979
توانیم ببینیم علامت نقطه است و
89
00:04:23,979 –> 00:04:25,750
به ما می گوید که داریم می رویم. برای
90
00:04:25,750 –> 00:04:27,820
فراخوانی مقداردهی اولیه
91
00:04:27,820 –> 00:04:32,290
یک روتین کفش از این سوپرکلاس و اگر
92
00:04:32,290 –> 00:04:35,260
در پرانتزها نگاه کنیم، میبینیم که
93
00:04:35,260 –> 00:04:38,590
باید خود و پنجره را منتقل کنیم،
94
00:04:38,590 –> 00:04:41,770
بنابراین پارامتری که به اینجا منتقل شد
95
00:04:41,770 –> 00:04:45,370
، اکنون paste اینجا است و پارامتری
96
00:04:45,370 –> 00:04:48,160
که به آن منتقل شده است. اینجا نیز منتقل می شود،
97
00:04:48,160 –> 00:04:52,480
همانطور که می توانید از طریق این اینجا ببینید، اکنون وقتی
98
00:04:52,480 –> 00:04:55,570
این خط اجرای خود را به پایان رساند
99
00:04:55,570 –> 00:04:58,540
، اطمینان حاصل کرد که این فریم نام کلاس hello
100
00:04:58,540 –> 00:05:01,780
می تواند تمام
101
00:05:01,780 –> 00:05:05,680
ویژگی های این فریم سوپرکلاس این
102
00:05:05,680 –> 00:05:08,910
خط کد e را به ارث ببرد. به طور موثر متغیری تولید می کند
103
00:05:08,910 –> 00:05:11,890
که می توانیم از آن استفاده کنیم و
104
00:05:11,890 –> 00:05:15,220
متغیری را که می توانیم به ویجت های خاص
105
00:05:15,220 –> 00:05:18,400
در یک رابط کاربری گرافیکی گره بزنیم، بنابراین وقتی
106
00:05:18,400 –> 00:05:21,490
این خط اجرا می شود، من دوست دارم به
107
00:05:21,490 –> 00:05:23,920
ایجاد متغیری فکر کنم همانطور که
108
00:05:23,920 –> 00:05:26,440
در اینجا می بینید و این متغیر این نام را دارد
109
00:05:26,440 –> 00:05:28,930
self dot users. در نام امتیاز
110
00:05:28,930 –> 00:05:30,730
که نامی است که از اینجا در برنامه گرفته شده است، در
111
00:05:30,730 –> 00:05:32,980
نتیجه اگر
112
00:05:32,980 –> 00:05:35,380
به این خط نگاهی بیندازیم، می بینیم که
113
00:05:35,380 –> 00:05:37,840
دقیقاً همین کار را انجام می دهد، با این
114
00:05:37,840 –> 00:05:40,300
تفاوت که ما در اینجا نام متفاوتی داریم، بنابراین به
115
00:05:40,300 –> 00:05:42,370
صورت شماتیک دوست دارم نشان دهم که به عنوان
116
00:05:42,370 –> 00:05:46,240
متغیر دیگری که اکنون ظاهر می شود، این
117
00:05:46,240 –> 00:05:48,760
متغیر به لطف
118
00:05:48,760 –> 00:05:52,270
این رشته ایجاد شده است VAR این متغیر نیز
119
00:05:52,270 –> 00:05:54,940
به لطف رشته ver ایجاد شده است،
120
00:05:54,940 –> 00:05:57,070
توصیه می کنم اگر کاملاً مطمئن نیستید
121
00:05:57,070 –> 00:05:59,770
که رشته var در واقع چه کاری انجام می دهد، باید
122
00:05:59,770 –> 00:06:03,190
به ویدیوی دیگری مراجعه کنید. در کانال یوتیوب
123
00:06:03,190 –> 00:06:05,410
و توصیه می کنم
124
00:06:05,410 –> 00:06:09,670
ویدیوی زیر را با نام جستجو کنید،
125
00:06:09,670 –> 00:06:12,760
بیایید این نام را در اینجا در نظر بگیریم که
126
00:06:12,760 –> 00:06:15,520
از برنامه در اینجا گرفته شده است و اگر
127
00:06:15,520 –> 00:06:17,920
نگاه دقیقی به آن داشته باشیم می توانید ببینید در
128
00:06:17,920 –> 00:06:20,380
ما کاربرانی در نام امتیاز داریم که
129
00:06:20,380 –> 00:06:22,900
بخشی از نام کلی را تشکیل میدهند و این به این
130
00:06:22,900 –> 00:06:26,320
دلیل است که من میخواستم این
131
00:06:26,320 –> 00:06:28,810
متغیر نام هر چیزی را که کاربر تایپ کرده است داشته باشد
132
00:06:28,810 –> 00:06:31,630
و سپس مثالی را که قبلا اجرا
133
00:06:31,630 –> 00:06:35,410
کردم با نام خود فیلیپ جونز تایپ کردم و در اینجا
134
00:06:35,410 –> 00:06:37,570
میتوانید ببینید ما نماد نقطهای داریم
135
00:06:37,570 –> 00:06:40,300
و در اینجا میتوانید ببینید که
136
00:06:40,300 –> 00:06:41,590
کلمه self داریم
137
00:06:41,590 –> 00:06:43,630
که کلمه self است که به
138
00:06:43,630 –> 00:06:46,270
اینجا منتقل شده است، بنابراین زمانی که instant در اینجا ایجاد شد
139
00:06:46,270 –> 00:06:48,730
، یک شناسه منحصر به فرد
140
00:06:48,730 –> 00:06:51,040
تولید کردیم که در
141
00:06:51,040 –> 00:06:53,830
نتیجه زمانی که ما به این موقعیت منتقل شدیم.
142
00:06:53,830 –> 00:06:57,250
آنچه گفته شد این است که این
143
00:06:57,250 –> 00:07:00,820
متغیر متعلق به نمونهای است که در
144
00:07:00,820 –> 00:07:03,280
حال ایجاد است و چون
145
00:07:03,280 –> 00:07:05,470
میتوانیم کلاس فریم hello name را بهعنوان
146
00:07:05,470 –> 00:07:08,380
کارخانهای در نظر بگیریم که قادر به تولید تعداد زیادی
147
00:07:08,380 –> 00:07:11,380
اشیاء است، هر کدام از آن اشیا
148
00:07:11,380 –> 00:07:14,830
کپی مخصوص به خود را از این ارائه خواهند داشت. ما
149
00:07:14,830 –> 00:07:17,610
خود را در مقابل آن قرار می دهیم زیرا
150
00:07:17,610 –> 00:07:21,280
خود هر یک از متغیرها را به
151
00:07:21,280 –> 00:07:24,730
نمونه ای که قرار است طولانی باشد شناسایی می کند
152
00:07:24,730 –> 00:07:28,000
و آن نمونه با شناسه ارسال شده در
153
00:07:28,000 –> 00:07:31,780
اینجا و البته این پس از آن شناسایی می شود.
154
00:07:31,780 –> 00:07:34,570
به آن شناسه دسترسی دارد همانطور که
155
00:07:34,570 –> 00:07:38,200
در اینجا در کد مشاهده می کنید البته اگر به
156
00:07:38,200 –> 00:07:41,230
نام این متغیر نگاه کنیم می توانیم ببینیم که
157
00:07:41,230 –> 00:07:44,520
ما خود را در مقابل آن داریم بنابراین این دو
158
00:07:44,520 –> 00:07:47,680
متعلق به یک نمونه هستند تا
159
00:07:47,680 –> 00:07:49,990
بر یک نکته تأکید کنیم که ما فقط روی آن تأکید نمی کنیم.
160
00:07:49,990 –> 00:07:53,290
در مقابل نامهایی که انتخاب میکنیم، خود را داشته باشیم،
161
00:07:53,290 –> 00:07:55,810
همچنین باید به خاطر داشته باشیم که میتوانیم
162
00:07:55,810 –> 00:07:58,330
ببینیم که نیاز به استفاده از نماد نقطه وجود دارد،
163
00:07:58,330 –> 00:08:01,240
این دستور برنامه بعدی برای
164
00:08:01,240 –> 00:08:03,970
اجرا است و کاری که قرار است انجام دهد این است که
165
00:08:03,970 –> 00:08:07,180
یک نمونه از ویجت برچسب ایجاد کنیم
166
00:08:07,180 –> 00:08:10,600
و این مسئول ایجاد
167
00:08:10,600 –> 00:08:13,330
آن نمونه است و اگر به پارامترها نگاهی بیندازید،
168
00:08:13,330 –> 00:08:15,490
میبینید که اکنون در حال عبور
169
00:08:15,490 –> 00:08:18,730
از خود هستیم که لازم است تا
170
00:08:18,730 –> 00:08:21,640
برچسب در حال ایجاد بداند
171
00:08:21,640 –> 00:08:25,240
که با نمونهای از
172
00:08:25,240 –> 00:08:29,020
کلاس فریم hello name مرتبط است و در اینجا میتوانید ببینید
173
00:08:29,020 –> 00:08:32,110
ما متن را طوری تنظیم میکنیم که نام شما را وارد کند
174
00:08:32,110 –> 00:08:35,169
و البته نمونهای که این
175
00:08:35,169 –> 00:08:38,679
ایجاد میکند به این نام در اینجا محدود میشود و
176
00:08:38,679 –> 00:08:41,590
میتوانید ببینید که من نام
177
00:08:41,590 –> 00:08:44,710
برچسب خط خطی دوستانه را انتخاب کردم و
178
00:08:44,710 –> 00:08:46,570
میبینید که نیاز به قرار دادن
179
00:08:46,570 –> 00:08:49,810
خود وجود دارد. و نقطه در f ront از این
180
00:08:49,810 –> 00:08:53,770
نامی که من ایجاد کردم، بنابراین این
181
00:08:53,770 –> 00:08:54,970
نام برچسب است
182
00:08:54,970 –> 00:08:58,329
و می توانیم بگوییم که این به این نمونه محدود شده است،
183
00:08:58,329 –> 00:09:01,209
حالا بعداً در کد
184
00:09:01,209 –> 00:09:04,720
این اجرا خواهد شد و می بینیم که
185
00:09:04,720 –> 00:09:07,810
این نام در اینجا مانند این است.
186
00:09:07,810 –> 00:09:10,629
من به این نمونه اشاره
187
00:09:10,629 –> 00:09:13,569
میکنم و میبینید که من از متد grid
188
00:09:13,569 –> 00:09:17,560
در این نمونه استفاده میکنم و
189
00:09:17,560 –> 00:09:21,579
برچسب را در ردیف 0 ستون 0 قرار میدهم و میتوانیم ببینیم
190
00:09:21,579 –> 00:09:24,160
که اینجا ظاهر میشود و آن ردیف 0
191
00:09:24,160 –> 00:09:27,759
ستون 0 است و اکنون این خط از کد
192
00:09:27,759 –> 00:09:31,899
نمونهای از ویجت ورودی را ایجاد میکند و این
193
00:09:31,899 –> 00:09:35,470
خط آن نمونه را قرار میدهد تا
194
00:09:35,470 –> 00:09:37,959
ببینیم که آن را در ردیف 0
195
00:09:37,959 –> 00:09:41,110
ستون 1 قرار میدهیم و به این معنی است
196
00:09:41,110 –> 00:09:45,189
که ویجت ورودی در اینجا ظاهر میشود این
197
00:09:45,189 –> 00:09:48,279
بیت کد نمونه
198
00:09:48,279 –> 00:09:50,680
ورودی را ایجاد میکند. ویجت و اگر به
199
00:09:50,680 –> 00:09:52,569
پارامترها نگاه کنید، میبینید که خود را
200
00:09:52,569 –> 00:09:55,629
ارسال میکنید به همان دلیلی که
201
00:09:55,629 –> 00:09:58,269
وقتی نمونه برچسب را ایجاد کردیم self در اینجا فرستاده
202
00:09:58,269 –> 00:10:01,629
شد و
203
00:10:01,629 –> 00:10:04,870
اگر اینجا را ببینید چه چیزی را میبینید، متغیر متن را تنظیم میکنیم.
204
00:10:04,870 –> 00:10:08,559
ویجت ورودی به
205
00:10:08,559 –> 00:10:11,259
این متغیر در اینجا whi ch را به
206
00:10:11,259 –> 00:10:15,730
صورت شماتیک در اینجا نشان داده ایم بنابراین به عبارت دیگر
207
00:10:15,730 –> 00:10:17,589
نمونه ویجت ورودی که در
208
00:10:17,589 –> 00:10:21,579
اینجا ایجاد شده است به این متغیر
209
00:10:21,579 –> 00:10:24,069
پیوند داده شده است و
210
00:10:24,069 –> 00:10:26,410
زمانی که کاربر
211
00:10:26,410 –> 00:10:29,019
برنامه قرار بود آن را در اینجا وارد کند می توانیم آن پیوند را
212
00:10:29,019 –> 00:10:31,839
به روش زیر نشان دهیم. قبلاً فیلیپ جونز سپس فیلیپ
213
00:10:31,839 –> 00:10:35,230
جونز به طور خودکار در این صفحه ظاهر می شود،
214
00:10:35,230 –> 00:10:38,319
بنابراین یک پیوند مستقیم بین این
215
00:10:38,319 –> 00:10:41,649
ویجت ورودی و متغیری
216
00:10:41,649 –> 00:10:45,819
که در این خط ایجاد شده است وجود دارد، اکنون این خط
217
00:10:45,819 –> 00:10:47,920
کد نمونه ای از
218
00:10:47,920 –> 00:10:50,529
کلاس دکمه و نمونه ای از ویجت دکمه ایجاد
219
00:10:50,529 –> 00:10:53,379
می کند. نمونه
220
00:10:53,379 –> 00:10:55,720
به این نام محدود می شود و اگر از اینجا پایین بیایید
221
00:10:55,720 –> 00:10:58,600
می بینید که ما همین نام را
222
00:10:58,600 –> 00:11:00,430
داریم و در حال ارسال پیام به آن هستیم و آن
223
00:11:00,430 –> 00:11:03,130
پیام متد grid را فراخوانی می کند و
224
00:11:03,130 –> 00:11:05,889
البته می بینیم که این ردیف 1 ستون 0
225
00:11:05,889 –> 00:11:08,620
است. دکمه ای که در اینجا ظاهر می شود
226
00:11:08,620 –> 00:11:11,770
با ردیف 1 ستون 0 است، بیایید
227
00:11:11,770 –> 00:11:14,140
توجه خود را به این خط کد برگردانیم
228
00:11:14,140 –> 00:11:16,090
که در آن نمونه ای از ویجت دکمه ایجاد می کنیم
229
00:11:16,090 –> 00:11:18,61