Page 1 of 1
Valid y When
Posted: Fri Sep 08, 2017 9:01 am
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 ......
Re: Valid y When
Posted: Fri Sep 08, 2017 10:48 am
by Antonio Linares
Re: Valid y When
Posted: Fri Sep 08, 2017 11:12 am
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
Re: Valid y When
Posted: Fri Sep 08, 2017 11:15 am
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
Re: Valid y When
Posted: Fri Sep 08, 2017 11:20 am
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
Re: Valid y When
Posted: Tue Sep 12, 2017 3:29 pm
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 )