Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. QWidget::setFocus() como usar?
Forum Updated to NodeBB v4.3 + New Features

QWidget::setFocus() como usar?

Scheduled Pinned Locked Moved Solved Portuguese
3 Posts 2 Posters 892 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    MSDiLieto
    wrote on last edited by
    #1

    Boa tarde a todos! Estou criando um menu basico, e a cada pagina de menu, existem uns 5 PushButton. Alguns pushButton seriam opcoes para entrar em um QLineEdit e manipular uma variavel numerica ou IP. O que eu queria e' q ao chegar em tal botao, se eu clicar ENTER, o foco pularia para o QLineEdit do seu botao. Pois o que esta acontecendo agora, e' que ele consegue entrar no QLineEdit apenas apos passar por todos os botoes!
    Esse e' o menu...

    0_1559060742508_Screenshot from 2019-05-28 13-17-00.png )

    KillerSmathK 1 Reply Last reply
    0
    • M MSDiLieto

      Boa tarde a todos! Estou criando um menu basico, e a cada pagina de menu, existem uns 5 PushButton. Alguns pushButton seriam opcoes para entrar em um QLineEdit e manipular uma variavel numerica ou IP. O que eu queria e' q ao chegar em tal botao, se eu clicar ENTER, o foco pularia para o QLineEdit do seu botao. Pois o que esta acontecendo agora, e' que ele consegue entrar no QLineEdit apenas apos passar por todos os botoes!
      Esse e' o menu...

      0_1559060742508_Screenshot from 2019-05-28 13-17-00.png )

      KillerSmathK Offline
      KillerSmathK Offline
      KillerSmath
      wrote on last edited by KillerSmath
      #2

      Olá @MSDiLieto

      QWidget::setFocus() é uma função SLOT, portanto você conecta-la a um sinal como por exemplo QPushButton::Clicked() e QLineEdit::editingFinished()

      
          // PushButton -> LineEdit
          connect(ui->pushButton, SIGNAL(clicked()), ui->lineEdit, SLOT(setFocus()));
          connect(ui->lineEdit, SIGNAL(returnPressed()), ui->pushButton, SLOT(setFocus()));
          // PushButton_2 -> LineEdit_2
          connect(ui->pushButton_2, SIGNAL(clicked()), ui->lineEdit_2, SLOT(setFocus()));
          connect(ui->lineEdit_2, SIGNAL(returnPressed()), ui->pushButton_2, SLOT(setFocus()));
      

      Entretanto, saiba que por padrão o QPushButton não reconhece a tecla Enter como acionador, ao invés disso, é utilizado a tecla Space.
      A tecla Enter só será conhecida por botões que possuem o atributo AutoDefault como true.
      https://doc.qt.io/qt-5/qpushbutton.html#default-prop

      Se você prefere acionar o evento de clique desses botões pela tecla Enter então eu recomendo que você sobreescreva o evento keyEvent de uma classe derivada de QPushButton. Em seguida, você pode promover essa classe customizada para os seus botões.

      Dê uma olhada nesse tópico.
      https://forum.qt.io/topic/102343/how-to-get-promoted-widget-to-show/2

      @Computer Science Student - Brazil
      Web Developer and Researcher
      “Sometimes it’s the people no one imagines anything of who do the things that no one can imagine.” - Alan Turing

      1 Reply Last reply
      0
      • M Offline
        M Offline
        MSDiLieto
        wrote on last edited by
        #3

        Mais uma vez muito obrigado Smath!! Pesquisei no SLOT, mas n tinha visto essa funcao.. Obrigadao!

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved