Observe o trecho de programa abaixo:
def abre_form_2():
form_2.show()
for
in range (11):
float(form_2.tableWidget.item(i, 0).text())
form_2.tableWidget.item(i, 1)
y.setText(str(
)
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.
def abre_form_2():
form_2.show()
for
y.setText(str(
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:
-
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. -
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árioform_2
. Comoform_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é queform_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 comform_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.