1 00:00:00,000 --> 00:00:00,490 2 00:00:00,490 --> 00:00:03,350 SPEAKER 1: La oss skrive et program med et grafisk brukergrensesnitt som også 3 00:00:03,350 --> 00:00:04,580 inkluderer etiketten. 4 00:00:04,580 --> 00:00:07,940 Og i denne etiketten, skal vi lagre nummer, om enn som en streng. 5 00:00:07,940 --> 00:00:10,880 Og vi kommer til å oppdatere denne etiketten igjen og igjen, og nytt. 6 00:00:10,880 --> 00:00:15,040 Slik at vi til syvende og sist teller ned fra 50 til null. 7 00:00:15,040 --> 00:00:20,910 Glabel, kaller det etiketten, får returnere verdien av ny glabel. 8 00:00:20,910 --> 00:00:22,900 Nå er jeg ikke kommer til å gi denne etiketten verdi ennå, så jeg skal 9 00:00:22,900 --> 00:00:25,040 satt i sitat, sitat slutt. 10 00:00:25,040 --> 00:00:29,080 >> Neste la oss kalle setfont, passerer på etiketten, og la oss passere i 11 00:00:29,080 --> 00:00:32,910 spesielt en font som heter SansSerif 36 poeng. 12 00:00:32,910 --> 00:00:36,370 En skrift som skjer for å eksistere inne i CS50 apparatet. 13 00:00:36,370 --> 00:00:41,940 Så til slutt, la oss legge til etiketten til vinduet som følger. 14 00:00:41,940 --> 00:00:44,580 Nå, la oss fortsette å indusere en loop som kommer til å telle 15 00:00:44,580 --> 00:00:46,400 fra 50 ned til null. 16 00:00:46,400 --> 00:00:49,520 Og innenfor denne sløyfen, la oss iterativt oppdatere etiketten og 17 00:00:49,520 --> 00:00:55,800 vise det på skjermen, For, int i får 50, i er større enn, eller lik 18 00:00:55,800 --> 00:00:59,750 til null, i minus, minus. 19 00:00:59,750 --> 00:01:02,090 >> Nå etiketter, viser det seg, må være strenger. 20 00:01:02,090 --> 00:01:04,110 Men jeg faktisk telle, ved hjelp av heltall. 21 00:01:04,110 --> 00:01:07,750 Så noe jeg er nødt til å konvertere heltallet, i, til en streng 22 00:01:07,750 --> 00:01:09,010 representasjon pil. 23 00:01:09,010 --> 00:01:12,480 For å gjøre så la oss erklære char s brakett tre. 24 00:01:12,480 --> 00:01:15,500 Slik at vi har nok lagringsplass for to-sifret tall, etterfulgt av en 25 00:01:15,500 --> 00:01:16,910 null terminator. 26 00:01:16,910 --> 00:01:22,480 Så la oss kalle s print f bestått i s, passerer i sitatet, 27 00:01:22,480 --> 00:01:24,220 unquote prosent i. 28 00:01:24,220 --> 00:01:26,960 Noe som indikerer at vi faktisk ønsker for å formatere et heltall. 29 00:01:26,960 --> 00:01:29,420 Til slutt passerer i seg selv. 30 00:01:29,420 --> 00:01:34,100 Med andre ord, s print f, eller streng print f, akkurat som print f, forventer en 31 00:01:34,100 --> 00:01:37,450 format streng etterfulgt av noen variabler å erstatte inn som 32 00:01:37,450 --> 00:01:38,430 formatstrengen. 33 00:01:38,430 --> 00:01:41,910 Men det tar også er dens første argument, stedet der du 34 00:01:41,910 --> 00:01:44,400 ønsker å lagre strengen at du har representert 35 00:01:44,400 --> 00:01:45,830 med at formatstrengen. 36 00:01:45,830 --> 00:01:52,540 >> Så neste, la oss gå videre og kaller satt, etiketten, passerer i etiketten, passerer s. 37 00:01:52,540 --> 00:01:56,430 Nå, endelig, bare fordi dette etiketter Bredden kommer til å endre seg over tid som 38 00:01:56,430 --> 00:02:00,640 vi teller ned fra 50, til 49, til prikk, prikk, prikk, til 9-8. 39 00:02:00,640 --> 00:02:03,170 Som ikke er så bredt som et tosifret tall er. 40 00:02:03,170 --> 00:02:05,570 La oss fortsette å finne ut dynamisk hvilke bredden på denne 41 00:02:05,570 --> 00:02:08,930 Etiketten skal være, og deretter sørge for at det er alltid sentrert på skjermen. 42 00:02:08,930 --> 00:02:12,390 Jeg først kommer til å erklære en dobbel, kalle det x, og jeg deretter kommer til å 43 00:02:12,390 --> 00:02:16,880 lagre innsiden av x, resultatet av Get bredde, som går i bredden på 44 00:02:16,880 --> 00:02:22,120 hele vinduet, minus få bredde, passerer på etiketten. 45 00:02:22,120 --> 00:02:24,880 Deretter dele det hele med to. 46 00:02:24,880 --> 00:02:29,660 Tilsvar jeg kommer til å erklære y å være lik få høyden på hele 47 00:02:29,660 --> 00:02:37,280 vindu, minus get høyde på bare etiketten, og skillet som ved to også. 48 00:02:37,280 --> 00:02:40,680 Til slutt, jeg kommer til å ringe setlocation, passerer i etiketten, 49 00:02:40,680 --> 00:02:43,180 passerer i x, passerer i y. 50 00:02:43,180 --> 00:02:45,970 Det ved å plassere etikett på x komma y. 51 00:02:45,970 --> 00:02:49,290 >> Til slutt, slik at denne nedtellingen ikke gjør skje for raskt la oss 52 00:02:49,290 --> 00:02:53,350 pause, for si, 100 millisekunder mellom hver oppdatering av etiketten. 53 00:02:53,350 --> 00:02:56,320 For å gjøre dette, kan vi kalle pause funksjon, er den som er definert i 54 00:02:56,320 --> 00:03:00,390 Stanford bærbar bibliotek, ganske enkelt på følgende måte. 55 00:03:00,390 --> 00:03:04,230 >> Nå la oss redde, kompilere, og kjøre dette programmet. 56 00:03:04,230 --> 00:03:08,320 Gjør etiketten, dot slash, etiketten. 57 00:03:08,320 --> 00:03:11,000 Det er min brukergrensesnitt teller ned fra 50. 58 00:03:11,000 --> 00:03:14,570 Teller ned, og ned, og ned, og gjort. 59 00:03:14,570 --> 00:03:16,992