Observe o trecho de programa abaixo:
def abre_form_2():
form_2.show()
for i in range (11):
x= float(form_2.tableWidget.item(i, 0).text())
y= form_2.tableWidget.item(i, 1)
y.setText(str( x^* x) )
Em relação à execução do método show acima, se form_1 e form_2 estão definidos como ApplicationModal, e form_1 for o primeiro a ser criado, é correto afirmar que:
(A) a instrução causa a apresentação do form_2. A aplicação não pode continuar enquanto o form_2 não for fechado;
(B) a instrução acarreta a apresentação do form_2. O usuário somente pode interagir com este form e só pode interagir com o form_1 se o form_2 for fechado.
© a instrução causa a apresentação do form_2. O usuário, no entanto, pode interagir apenas com o form_1;
(D) a instrução retorna o modo de visualização do form_2 e o form_1 é minimizado;
(E) a instrução causa a apresentação do form_2. O form_1 é fechado e destruído.

Passo 1

Vamos resumir o que o exercício está pedindo. Temos um trecho de código em Python onde uma função abre_form_2() é definida. Essa função exibe form_2 usando form_2.show() e, em seguida, realiza um loop para manipular itens em uma tabela. O foco da questão é entender o que acontece quando form_2.show() é chamado, especialmente considerando que tanto form_1 quanto form_2 estão definidos como ApplicationModal e que form_1 foi criado primeiro.
Matéria envolvida: Modos de exibição de formulários em interfaces gráficas (GUI), especificamente o modo modal de aplicativos.
O que precisamos para resolver: Entender o que significa um formulário ser modal de aplicação e como isso afeta a interação do usuário com outros formulários na aplicação.

Passo 2

Primeiro, vamos entender o que significa um formulário ser ApplicationModal. Em interfaces gráficas, um formulário modal é aquele que impede o usuário de interagir com outros formulários da aplicação até que ele seja fechado.
Existem dois tipos principais de modais:
  1. Modal de aplicação (ApplicationModal): Quando um formulário é modal de aplicação, ele bloqueia toda a aplicação. Isso significa que, enquanto esse formulário estiver aberto, o usuário não pode interagir com nenhum outro formulário da aplicação.
  2. Modal de documento (DocumentModal): Bloqueia apenas o formulário pai, permitindo interação com outros formulários que não sejam o pai.
No nosso caso, ambos form_1 e form_2 são definidos como ApplicationModal.

Passo 3

Agora, vamos analisar o que acontece quando form_2.show() é chamado:
  • form_2.show(): Este método exibe o formulário form_2. Como form_2 é ApplicationModal, ao ser exibido, ele bloqueia toda a aplicação.
Dado que form_1 foi o primeiro formulário criado e também é ApplicationModal, ao abrir form_2, o usuário não poderá interagir com form_1 enquanto form_2 estiver aberto.

Passo 4

Vamos analisar cada alternativa com base nessa informação:
  • (A) a instrução causa a apresentação do form_2. A aplicação não pode continuar enquanto o form_2 não for fechado;
    Correto: Está dizendo que ao mostrar form_2, a aplicação fica bloqueada até que form_2 seja fechada.
  • (B) a instrução acarreta a apresentação do form_2. O usuário somente pode interagir com este form e só pode interagir com o form_1 se o form_2 for fechado.
    Correto: Similar à alternativa A, especifica que o usuário só pode interagir com form_2 enquanto ele estiver aberto.
  • © a instrução causa a apresentação do form_2. O usuário, no entanto, pode interagir apenas com o form_1;
    Incorreto: Contradiz o comportamento modal, já que o usuário deveria interagir apenas com form_2, não com form_1.
  • (D) a instrução retorna o modo de visualização do form_2 e o form_1 é minimizado;
    Incorreto: Não há informação no enunciado sobre minimização de formulários.
  • (E) a instrução causa a apresentação do form_2. O form_1 é fechado e destruído.
    Incorreto: Ser modal não implica fechar ou destruir outros formulários.

Resposta

A alternativa (B) está correta.

Exercícios relacionados