1 00:00:00,000 --> 00:00:00,490 2 00:00:00,490 --> 00:00:03,350 LUIDSPREKER 1: Laten we een programma schrijven met een grafische user interface die ook 3 00:00:03,350 --> 00:00:04,580 omvat label. 4 00:00:04,580 --> 00:00:07,940 En in dit label, gaan we slaan aantal, zij het als een string. 5 00:00:07,940 --> 00:00:10,880 En we gaan dat label te werken opnieuw, en opnieuw, en opnieuw. 6 00:00:10,880 --> 00:00:15,040 Zodat we uiteindelijk tellen onderaan van 50 tot nul. 7 00:00:15,040 --> 00:00:20,910 Glabel, noemde het label, krijgt de waarde van de nieuwe glabel terugkeren. 8 00:00:20,910 --> 00:00:22,900 Nu, ik ben niet van plan om dit te geven etiket waarde nog niet, dus ik zal 9 00:00:22,900 --> 00:00:25,040 zetten in citaat, unquote. 10 00:00:25,040 --> 00:00:29,080 >> Volgende laten we noemen setFont, passeren in het label, en laten we passeren in 11 00:00:29,080 --> 00:00:32,910 specifiek een lettertype genaamd SansSerif 36 punt. 12 00:00:32,910 --> 00:00:36,370 Een lettertype dat gebeurt te bestaan binnen de CS50 apparaat. 13 00:00:36,370 --> 00:00:41,940 Dan eindelijk, nog de toevoeging dat het etiket het raam als volgt. 14 00:00:41,940 --> 00:00:44,580 Nu, laten we overgaan tot het induceren van een lus die gaat tellen 15 00:00:44,580 --> 00:00:46,400 van 50 tot nul. 16 00:00:46,400 --> 00:00:49,520 En binnen die lus, laten we iteratief bijwerken van de label en 17 00:00:49,520 --> 00:00:55,800 weer te geven op het scherm, voor, int i 50 krijgt, i groter dan of gelijk 18 00:00:55,800 --> 00:00:59,750 naar nul, ik min, min. 19 00:00:59,750 --> 00:01:02,090 >> Nu labels, zo blijkt, moet strings. 20 00:01:02,090 --> 00:01:04,110 Maar ik ben eigenlijk te tellen, met getallen. 21 00:01:04,110 --> 00:01:07,750 Dus een of andere manier ga ik hebben om te zetten de integer, i een tekenreeks 22 00:01:07,750 --> 00:01:09,010 vertegenwoordiging pijl. 23 00:01:09,010 --> 00:01:12,480 Om dit te doen laten verklaren char s beugel drie. 24 00:01:12,480 --> 00:01:15,500 Zodat we voldoende opslagruimte twee cijfers, gevolgd door een 25 00:01:15,500 --> 00:01:16,910 null terminator. 26 00:01:16,910 --> 00:01:22,480 Dan laten gesprek s afdrukken f passeren in s, passeren in citaat, 27 00:01:22,480 --> 00:01:24,220 unquote procent i. 28 00:01:24,220 --> 00:01:26,960 Wat aangeeft dat we inderdaad willen om een ​​geheel getal te formatteren. 29 00:01:26,960 --> 00:01:29,420 Tenslotte passeren i zelf. 30 00:01:29,420 --> 00:01:34,100 Met andere woorden, s afdrukken f of koord prent f, net zoals print f, verwacht een 31 00:01:34,100 --> 00:01:37,450 format string gevolgd door een aantal variabelen te vervangen in die 32 00:01:37,450 --> 00:01:38,430 format string. 33 00:01:38,430 --> 00:01:41,910 Maar het accepteert ook is zijn eerste argument, de locatie waar u 34 00:01:41,910 --> 00:01:44,400 wil de string op te slaan dat u vertegenwoordigd 35 00:01:44,400 --> 00:01:45,830 met dat format string. 36 00:01:45,830 --> 00:01:52,540 >> Dus de volgende, laten we verder gaan en roepen ingesteld, label, passeren in label, passeren in s. 37 00:01:52,540 --> 00:01:56,430 Nu, eindelijk, gewoon omdat deze labels breedte gaat veranderen in de tijd als 38 00:01:56,430 --> 00:02:00,640 we aftellen van 50, naar 49, dot, dot, dot, naar 9-8. 39 00:02:00,640 --> 00:02:03,170 Die niet zo breed als een twee-cijferig getal is. 40 00:02:03,170 --> 00:02:05,570 Laten we eens gaan uitzoeken dynamisch wat de breedte van de 41 00:02:05,570 --> 00:02:08,930 etiket moet zijn en dan zorgen dat het is altijd gecentreerd op het scherm. 42 00:02:08,930 --> 00:02:12,390 Ik ga eerst naar een dubbele verklaren, noemde het x, en ik vervolgens naar 43 00:02:12,390 --> 00:02:16,880 opslaat in x, het resultaat van get breedte aan, waarbij de breedte van de 44 00:02:16,880 --> 00:02:22,120 hele venster, minus krijgen breedte, passeren in de label. 45 00:02:22,120 --> 00:02:24,880 Vervolgens te delen het hele ding door twee. 46 00:02:24,880 --> 00:02:29,660 Zo ook ik ga verklaren y te zijn gelijk aan de hoogte van de gehele krijgen 47 00:02:29,660 --> 00:02:37,280 venster, minus get hoogte van slechts de label, en delen die door twee ook. 48 00:02:37,280 --> 00:02:40,680 Tot slot ga ik setlocation noemen, passeren in het etiket 49 00:02:40,680 --> 00:02:43,180 passeren in x, passeren in y. 50 00:02:43,180 --> 00:02:45,970 Het door het zo etiketteren x komma y. 51 00:02:45,970 --> 00:02:49,290 >> Tenslotte, zodat deze niet countdown te snel laten gebeuren 52 00:02:49,290 --> 00:02:53,350 pauzeren, voor zeg, 100 milliseconden tussen elke update van het label. 53 00:02:53,350 --> 00:02:56,320 Om dit te doen, kunnen we de pauze noemen functie, die is gedefinieerd in de 54 00:02:56,320 --> 00:03:00,390 Stanford draagbare bibliotheek, simpelweg als volgt. 55 00:03:00,390 --> 00:03:04,230 >> Laten we nu eens redden, compileren, en uitvoeren van deze programma. 56 00:03:04,230 --> 00:03:08,320 Maak label, dot slash, label. 57 00:03:08,320 --> 00:03:11,000 Daar is mijn user interface aftellen van 50. 58 00:03:11,000 --> 00:03:14,570 Aftellen, en naar beneden, en neer, en gedaan. 59 00:03:14,570 --> 00:03:16,992