1 00:00:00,000 --> 00:00:00,490 2 00:00:00,490 --> 00:00:03,350 COLUNA 1: Vamos escrever um programa com uma interface gráfica do usuário que também 3 00:00:03,350 --> 00:00:04,580 inclui etiqueta. 4 00:00:04,580 --> 00:00:07,940 E nesse rótulo, nós estamos indo para armazenar número, ainda que como uma string. 5 00:00:07,940 --> 00:00:10,880 E vamos atualizar esse rótulo novamente, e novamente, e novamente. 6 00:00:10,880 --> 00:00:15,040 De modo que, em última análise contar para baixo a partir de 50 para zero. 7 00:00:15,040 --> 00:00:20,910 Glabel, chamando-a etiqueta, obtém o valor de novo glabel retornar. 8 00:00:20,910 --> 00:00:22,900 Agora, eu não vou dar a este valor do rótulo ainda, então eu vou 9 00:00:22,900 --> 00:00:25,040 colocar em citação, fecha aspas. 10 00:00:25,040 --> 00:00:29,080 >> Em seguida vamos chamá setFont, passando no rótulo, e vamos passar em 11 00:00:29,080 --> 00:00:32,910 especificamente uma fonte chamada SansSerif 36 pontos. 12 00:00:32,910 --> 00:00:36,370 Uma fonte que acontece de existir no interior do aparelho CS50. 13 00:00:36,370 --> 00:00:41,940 Então, finalmente, vamos adicionar o rótulo para a janela da seguinte maneira. 14 00:00:41,940 --> 00:00:44,580 Agora, vamos continuar a induzir uma loop que vai contar 15 00:00:44,580 --> 00:00:46,400 a partir de 50 até zero. 16 00:00:46,400 --> 00:00:49,520 E dentro desse loop, vamos iterativa atualizar o rótulo e 17 00:00:49,520 --> 00:00:55,800 exibi-lo na tela, para, int i recebe 50, i é superior ou igual 18 00:00:55,800 --> 00:00:59,750 a zero, i menos, menos. 19 00:00:59,750 --> 00:01:02,090 >> Agora rótulos, ao que parece, tem que ser strings. 20 00:01:02,090 --> 00:01:04,110 Mas na verdade estou contando, utilizando números inteiros. 21 00:01:04,110 --> 00:01:07,750 Então, de alguma forma eu vou ter de converter o inteiro, i, para uma string 22 00:01:07,750 --> 00:01:09,010 representação seta. 23 00:01:09,010 --> 00:01:12,480 Para fazer isso vamos declarar caractere s suporte de três. 24 00:01:12,480 --> 00:01:15,500 Assim que temos bastante espaço de armazenamento por número de dois dígitos, seguidos por um 25 00:01:15,500 --> 00:01:16,910 terminador nulo. 26 00:01:16,910 --> 00:01:22,480 Então vamos chamada s impressão f passagem em s, passando em citação, 27 00:01:22,480 --> 00:01:24,220 por cento unquote i. 28 00:01:24,220 --> 00:01:26,960 Indicando que nós realmente queremos para formatar um número inteiro. 29 00:01:26,960 --> 00:01:29,420 Finalmente passa-se em i. 30 00:01:29,420 --> 00:01:34,100 Em outras palavras, s impressão f, ou corda f impressão, assim como impressão f, espera um 31 00:01:34,100 --> 00:01:37,450 cadeia de formato seguido por algumas variáveis para substituir naquele 32 00:01:37,450 --> 00:01:38,430 string de formato. 33 00:01:38,430 --> 00:01:41,910 Mas também é aceita o seu primeiro argumento, o local em que você 34 00:01:41,910 --> 00:01:44,400 gostaria de armazenar a cadeia que você tenha representado 35 00:01:44,400 --> 00:01:45,830 com essa seqüência de formato. 36 00:01:45,830 --> 00:01:52,540 >> Assim, na próxima, vamos em frente e ligar para definir, rótulo, passando rótulo, passando s. 37 00:01:52,540 --> 00:01:56,430 Agora, finalmente, só porque este rótulos largura vai mudar ao longo do tempo como 38 00:01:56,430 --> 00:02:00,640 contamos para baixo de 50, a 49, a ponto, ponto, ponto, de nove para oito. 39 00:02:00,640 --> 00:02:03,170 O que não é tão grande como um número de dois dígitos é. 40 00:02:03,170 --> 00:02:05,570 Vamos prosseguir para descobrir dinamicamente que a largura desta 41 00:02:05,570 --> 00:02:08,930 rótulo deve ser e, em seguida, garantir que ele está sempre no centro da tela. 42 00:02:08,930 --> 00:02:12,390 Vou primeiro a declarar um duplo, chamando-X, e eu estou passando então a 43 00:02:12,390 --> 00:02:16,880 armazenar dentro de x, o resultado de get largura, passando a largura da 44 00:02:16,880 --> 00:02:22,120 Toda janela, menos obter largura, passando o rótulo. 45 00:02:22,120 --> 00:02:24,880 Então, dividindo tudo por dois. 46 00:02:24,880 --> 00:02:29,660 Da mesma forma que eu vou declarar y ser igual a obter a altura de toda 47 00:02:29,660 --> 00:02:37,280 altura da janela, menos get de apenas o rótulo e divida que por dois também. 48 00:02:37,280 --> 00:02:40,680 Finalmente, eu vou ligar para SetLocation, passando o rótulo, 49 00:02:40,680 --> 00:02:43,180 passando em x, passando y. 50 00:02:43,180 --> 00:02:45,970 Há pelo posicionamento do rotular a vírgula x y. 51 00:02:45,970 --> 00:02:49,290 >> Finalmente, de modo a que este não faz contagem decrescente acontecer muito rapidamente vamos 52 00:02:49,290 --> 00:02:53,350 pausar, por digamos, 100 milissegundos entre cada actualização do rótulo. 53 00:02:53,350 --> 00:02:56,320 Para fazê-lo, podemos chamar a pausa função, que está definida no 54 00:02:56,320 --> 00:03:00,390 Stanford biblioteca portátil, simplesmente como se segue. 55 00:03:00,390 --> 00:03:04,230 >> Agora vamos salvar, compilar e executar este programa. 56 00:03:04,230 --> 00:03:08,320 Faça etiqueta, corte de ponto, etiqueta. 57 00:03:08,320 --> 00:03:11,000 Não é a minha interface de usuário contagem regressiva de 50. 58 00:03:11,000 --> 00:03:14,570 Contagem regressiva, e para baixo, e para baixo, e feito. 59 00:03:14,570 --> 00:03:16,992