1 00:00:00,000 --> 00:00:00,490 2 00:00:00,490 --> 00:00:03,350 SPEAKER 1: Lad os skrive et program med en grafisk brugergrænseflade, som også 3 00:00:03,350 --> 00:00:04,580 omfatter etiketten. 4 00:00:04,580 --> 00:00:07,940 Og i dette mærke, vi kommer til at gemme nummer, men kun som en streng. 5 00:00:07,940 --> 00:00:10,880 Og vi vil opdatere denne etiket igen og igen og igen. 6 00:00:10,880 --> 00:00:15,040 Så vi i sidste ende tæller ned fra 50 til nul. 7 00:00:15,040 --> 00:00:20,910 Glabel, kalder det label, får returnere værdien af ​​ny glabel. 8 00:00:20,910 --> 00:00:22,900 Nu, jeg har ikke tænkt mig at give denne label værdi endnu, så jeg vil 9 00:00:22,900 --> 00:00:25,040 sat i citat, citat slut. 10 00:00:25,040 --> 00:00:29,080 >> Næste lad os kalde setFont, der passerer i etiketten, og lad os gå i 11 00:00:29,080 --> 00:00:32,910 specifikt en skrifttype kaldet SansSerif 36 point. 12 00:00:32,910 --> 00:00:36,370 En skrifttype, der sker for at eksistere inde i CS50 apparatet. 13 00:00:36,370 --> 00:00:41,940 Så endelig, lad os tilføje etiketten til vinduet som følger. 14 00:00:41,940 --> 00:00:44,580 Lad os nu gå videre til at fremkalde en løkke, der kommer til at tælle 15 00:00:44,580 --> 00:00:46,400 fra 50 ned til nul. 16 00:00:46,400 --> 00:00:49,520 Og inden for denne løkke, lad os iterativt ajourføre etiketten og 17 00:00:49,520 --> 00:00:55,800 vise det på skærmen, den, int i får 50, jeg er større end eller lig 18 00:00:55,800 --> 00:00:59,750 til nul, jeg minus, minus. 19 00:00:59,750 --> 00:01:02,090 >> Nu mærker, viser det sig, være strenge. 20 00:01:02,090 --> 00:01:04,110 Men jeg faktisk tælle, ved hjælp af heltal. 21 00:01:04,110 --> 00:01:07,750 Så på en måde jeg har tænkt mig at nødt til at konvertere heltal, i, til en streng 22 00:01:07,750 --> 00:01:09,010 repræsentation pil. 23 00:01:09,010 --> 00:01:12,480 For at gøre så lad os erklære char s beslag tre. 24 00:01:12,480 --> 00:01:15,500 Så vi har nok lagerplads for to-cifrede nummer, efterfulgt af en 25 00:01:15,500 --> 00:01:16,910 null terminator. 26 00:01:16,910 --> 00:01:22,480 Så lad os kalde s print f passerer i s, der passerer i citat, 27 00:01:22,480 --> 00:01:24,220 unquote procent i. 28 00:01:24,220 --> 00:01:26,960 Hvilket indikerer, at vi faktisk ønsker at formatere et heltal. 29 00:01:26,960 --> 00:01:29,420 Endelig passerer i sig selv. 30 00:01:29,420 --> 00:01:34,100 Med andre ord, s tryk f, eller streng print f, ligesom print f, forventer en 31 00:01:34,100 --> 00:01:37,450 format streng efterfulgt af nogle variabler at erstatte i det 32 00:01:37,450 --> 00:01:38,430 string format. 33 00:01:38,430 --> 00:01:41,910 Men det accepterer også er dens første argument, det sted, hvor du 34 00:01:41,910 --> 00:01:44,400 gerne vil gemme strengen at du har repræsenteret 35 00:01:44,400 --> 00:01:45,830 med denne streng format. 36 00:01:45,830 --> 00:01:52,540 >> Så næste, lad os gå videre og kalde indstillet, etiket, der passerer i etiketten, der passerer i sek. 37 00:01:52,540 --> 00:01:56,430 Nu, endelig, bare fordi denne etiketter bredde vil ændre sig over tid, da 38 00:01:56,430 --> 00:02:00,640 vi tæller ned fra 50 til 49, til prik, prik, prik, til ni til otte. 39 00:02:00,640 --> 00:02:03,170 Hvilket ikke er så bred som et to-cifret tal er. 40 00:02:03,170 --> 00:02:05,570 Lad os gå videre til at finde ud af dynamisk hvad bredden af ​​dette 41 00:02:05,570 --> 00:02:08,930 etiketten skal være, og derefter sikre, at det er altid centreret på skærmen. 42 00:02:08,930 --> 00:02:12,390 Jeg først kommer til at erklære en dobbelt, kalde det x, og jeg derefter gå til 43 00:02:12,390 --> 00:02:16,880 opbevares inde i x, resultatet af get bredde, passerer i bredde 44 00:02:16,880 --> 00:02:22,120 hele vinduet, minus få bredde, passerer i etiketten. 45 00:02:22,120 --> 00:02:24,880 Derefter dividere det hele med to. 46 00:02:24,880 --> 00:02:29,660 Ligeledes vil jeg erklære y at være lig til at få højden af ​​hele 47 00:02:29,660 --> 00:02:37,280 vindue, minus get højde på bare etiket, og dividere det med to så godt. 48 00:02:37,280 --> 00:02:40,680 Endelig vil jeg kalde setlocation, passerer etiketten 49 00:02:40,680 --> 00:02:43,180 passerer i x, der passerer i y. 50 00:02:43,180 --> 00:02:45,970 Der ved at placere etiket ved x komma y. 51 00:02:45,970 --> 00:02:49,290 >> Endelig, så denne nedtælling ikke ske for hurtigt lad os 52 00:02:49,290 --> 00:02:53,350 pause, for sige, 100 millisekunder mellem hver opdatering af etiketten. 53 00:02:53,350 --> 00:02:56,320 For at gøre det, kan vi kalde pausen funktion, der er defineret i 54 00:02:56,320 --> 00:03:00,390 Stanford bærbar bibliotek, ganske enkelt som følger. 55 00:03:00,390 --> 00:03:04,230 >> Lad os nu gemme, kompilere, og køre dette program. 56 00:03:04,230 --> 00:03:08,320 Gør etiket, prik skråstreg, etiket. 57 00:03:08,320 --> 00:03:11,000 Der er min brugergrænseflade tælle ned fra 50. 58 00:03:11,000 --> 00:03:14,570 Tælle ned, og ned, og ned, og gjort. 59 00:03:14,570 --> 00:03:16,992