Valid y When

Post Reply
jtscalpe
Posts: 18
Joined: Thu Sep 07, 2017 6:20 pm

Valid y When

Post by jtscalpe »

Como se puede hacer un Valid y When con QlineEdit() sin usar el get ?, se puede ?, porque no veo en los ejemplos ninguna practica de lo dicho, seria como el OnChange, Onclick ......
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Valid y When

Post by Antonio Linares »

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Valid y When

Post by Antonio Linares »

Aqui tienes un ejemplo de como poder hacer el VALID:

Code: Select all

#include "FiveTouch.ch"

function Main()

   local oDlg, oGet1, cTest 
   local oBtnOk, oBtnCancel

   DEFINE DIALOG oDlg

   @ 20, 20 GET oGet1 VAR cTest OF oDlg SIZE 100, 20

   oGet1:Connect( "textEdited(QString)", { | u | MsgInfo( u ) } )

   @ 200, 90 BUTTON oBtnOk PROMPT "Ok" OF oDlg ;
      ACTION MsgInfo( "Ok!" )

   @ 200, 220 BUTTON oBtnCancel PROMPT "Cancel" OF oDlg ;
      ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Valid y When

Post by Antonio Linares »

Tambien podrias usar esta señal que se emite cuando se ha terminado de editar:

http://doc.qt.io/qt-4.8/qlineedit.html#editingFinished

Code: Select all

#include "FiveTouch.ch"

function Main()

   local oDlg, oGet1, cTest 
   local oBtnOk, oBtnCancel

   DEFINE DIALOG oDlg

   @ 20, 20 GET oGet1 VAR cTest OF oDlg SIZE 100, 20

   oGet1:Connect( "editingFinished()", { || MsgInfo( "VALIDar desde aqui" ) } )

   @ 200, 90 BUTTON oBtnOk PROMPT "Ok" OF oDlg ;
      ACTION MsgInfo( "Ok!" )

   @ 200, 220 BUTTON oBtnCancel PROMPT "Cancel" OF oDlg ;
      ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Valid y When

Post by Antonio Linares »

hay dos señales que se reciben de QWidget pero no se como podemos usarlas:

http://doc.qt.io/qt-4.8/qwidget.html#signals

En concreto keyboardGrabber() y mouseGrabber() servirían para hacer el WHEN
regards, saludos

Antonio Linares
www.fivetechsoft.com
jtscalpe
Posts: 18
Joined: Thu Sep 07, 2017 6:20 pm

Re: Valid y When

Post by jtscalpe »

Este Ejemplo me funciona bien para el Valid, porque en función de lo que devuelva, (.t.) o (.f.), la función KeyBoardEvents() detiene la aplicación, pero pierdo el control con el ratón y me gustaría en la función KeyBoardEvents() asignarle al ENTER que funcionará como el TAB, Saludos



#include "FiveTouch.ch"

function Main()

local oDlg, oGet1, cTest
local oBtnOk, oBtnCancel

DEFINE DIALOG oDlg

@ 20, 20 GET oGet1 VAR cTest OF oDlg SIZE 100, 20

oGet1:connect( QEvent_KeyPress , { |e| KeyBoardEvents( e, cTest ) } )
//QEvent_KeyPress -- viene de Hbqtgui.ch

@ 200, 90 BUTTON oBtnOk PROMPT "Ok" OF oDlg ;
ACTION MsgInfo( "Ok!" )

@ 200, 220 BUTTON oBtnCancel PROMPT "Cancel" OF oDlg ;
ACTION oDlg:End()

ACTIVATE DIALOG oDlg CENTERED

return nil
//---------------------------------------------------
Function KeyBoardEvents( e, cText )
LOCAL lSalida := .T.
LOCAL nKey := e:key()

// (.T.) No Permite Continuar
// (.F.) Permite Continuar

Do Case
Case nKey == Qt_Key_Return .OR. nKey == Qt_Key_Enter
MsgInfo('Enter')
lSalida := .F.

Case nKey == Qt_Key_Tab
MsgInfo('Tab')
lSalida := .F.

Case nKey == Qt_XButton1
MsgInfo('Mouse')
lSalida := .F.

Case nKey == Qt_Key_F1
MsgInfo('F1')
lSalida := .T.

EndCase

Return( lSalida )
Post Reply