Please include it in qt test...
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Marcos Gambeta
Sent: 2009. december 17. 19:18
To: Harbour Project Main Developer List.
Subject: Re: [Harbour] Window Main X Window Modal X HBQT
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
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour