Marcos, thanks for your help!
But it has as define the size of the fields and the position of labels and
fields?
Regards,
Toledo
Marcos Gambeta wrote:
>
> PCToledo escreveu:
>> Someone could send a small example of how to create a Window Main and
>> open
>> it in a Window Modal?
>
> Your sample with a login dialog:
>
> [code]
> /*----------------------------------------------------------------------*/
> #include "hbqt.ch"
> #include "common.ch"
>
> #define QT_EVE_TRIGGERED_B "triggered(bool)"
>
> STATIC oApplication
>
> /*----------------------------------------------------------------------*/
> INIT PROCEDURE Qt_Start()
> oApplication := QApplication():new()
> RETURN
>
> EXIT PROCEDURE Qt_End()
> oApplication:quit()
> RETURN
>
> Procedure Main()
>
> Local oMainWindow, oStatusBar, oStatusTit, oMenuBar, oMenuFile, oMB
>
> oMainWindow := QMainWindow():New()
>
> oMainWindow:setMouseTracking( .t. )
> oMainWindow:SetWindowTitle("Program title")
>
> oStatusBar := QStatusBar():new(QT_PTROF(oMainWindow))
>
> oStatusTit := QLabel():new()
> oStatusTit:setText(" PCToledo Sistemas - [email protected]")
> oStatusTit:setMinimumSize(oStatusTit:sizeHint())
>
> oStatusBar:addWidget(QT_PTROF(oStatusTit),1)
>
> oMainWindow:setStatusBar( QT_PTROF(oStatusBar) )
> oStatusBar:setSizeGripEnabled(.f.)
>
> oMenuBar := QMenuBar():new()
> oMenuBar:resize( oMainWindow:width(), 25 )
>
> oMenuFile := QMenu():new()
> oMenuFile:setTitle("&File")
>
> Qt_Connect_Signal( oMenuFile:AddAction("&Exit"), QT_EVE_TRIGGERED_B,
> {||oMainWindow:close() })
> oMenuBar:addMenu( QT_PTROF( oMenuFile ) )
>
> oMainWindow:setMenuBar( QT_PTROF( oMenuBar ) )
>
> IF PassWord(oMainWindow)
> //valid password
> oMainWindow:showMaximized()
> oApplication:Exec()
> ELSE
> //Invalid Password
> oMB := QMessageBox():new()
> oMB:setInformativeText( "Invalid user or password" )
> oMB:setWindowTitle( "Login" )
> oMB:exec()
> ENDIF
>
> //oMainWindow:showMaximized()
>
> //oApplication:Exec()
>
> Return
>
> STATIC FUNCTION PassWord()
> //Local Ret:=0
> Local oDialog
> Local oFormLayout
> Local oLabelUser
> Local oLineEditUser
> Local oLabelPassword
> Local oLineEditPassword
> Local oButtonOk
> Local r
>
> oDialog := QDialog():New()
> oDialog:setWindowTitle("Login")
> oDialog:resize(210,130)
> oFormLayout := QFormLayout():New(QT_PTROF( oDialog ))
> oLabelUser := QLabel():New()
> oLabelUser:setText("User")
> oLineEditUser := QLineEdit():New()
> oLabelPassword := QLabel():New()
> oLabelPassword:setText("Password")
> oLineEditPassWord := QLineEdit():New()
> oLineEditPassWord:setEchoMode(2)
> oFormLayout:addRow( QT_PTROF(oLabelUser), QT_PTROF(oLineEditUser) )
> oFormLayout:addRow( QT_PTROF(oLabelPassword),
> QT_PTROF(oLineEditPassword) )
> oButtonOk := QPushButton():New(QT_PTROF( oDialog ))
> oButtonOk:setText("OK")
> oButtonOk:move(100,80)
> Qt_Connect_Signal( QT_PTROF(oButtonOk), "clicked()",
> {||IIF(oLineEditUser:text()=="user".and.oLineEditPassword:text()=="password",oDialog:done(1),oDialog:done(0))
>
> })
>
> r := oDialog:exec()
>
> //Return (Ret)
> Return IIF(r==1,.t.,.f.)
> [/code]
>
> Take some time to study the classes QDialog and QFormLayout (very useful).
>
> --
> Regards,
> Marcos Antonio Gambeta
>
-----
Toledo
http://www.pctoledo.com.br/forum http://www.pctoledo.com.br/forum
--
View this message in context:
http://old.nabble.com/Window-Main-X-Window-Modal-X-HBQT-tp26818868p26842663.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour