Vous êtes sur la page 1sur 10

Ring Documentation, Release 1.

exec()
}

Func draw
p1 = new qpicture()
color = new qcolor() {
setrgb(0,0,255,255)
}
pen = new qpen() {
setcolor(color)
setwidth(10)
}
new qpainter() {
begin(p1)
setpen(pen)
drawline(500,150,950,450)
drawline(950,550,500,150)
endpaint()
}
label1 { setpicture(p1) show() }

The application during the runtime

56.33. Drawing using QPainter 575


Ring Documentation, Release 1.5

56.34 Printing using QPrinter

In this example we will learn how to print to PDF file using QPrinter
Load "guilib.ring"
new qApp {
win1 = new qwidget() {
setwindowtitle("Printer")
setgeometry(100,100,500,500)
myweb = new qwebview(win1) {
setgeometry(100,100,1000,500)
loadpage(new qurl("http://google.com"))
}
new qpushbutton(win1) {
setGeometry(20,20,100,30)
settext("Print")
setclickevent("print()")
}
showmaximized()

56.34. Printing using QPrinter 576


Ring Documentation, Release 1.5

}
exec()
}

func print
printer1 = new qPrinter(0) {
setoutputformat(1) # 1 = pdf
setoutputfilename("test.pdf")
painter = new qpainter() {
begin(printer1)
myfont = new qfont("Times",50,-1,0)
setfont(myfont)
drawtext(100,100,"test")
printer1.newpage()
drawtext(100,100,"test2")
endpaint()
}
}

printer1 = new qPrinter(0) {


setoutputformat(1)
setoutputfilename("test2.pdf")
myweb.print(printer1)
myweb.show()
}

system ("test.pdf")
system ("test2.pdf")

56.35 Creating More than one Window

The next example demonstrates how to create more than one window
Load "guilib.ring"
app1 = new qapp {
win1 = new qwidget() {
setwindowtitle("First")
setgeometry(100,100,500,500)

new qpushbutton(win1) {
setgeometry(100,100,100,30)
settext("close")
setclickevent("app1.quit()")
}

new qpushbutton(win1) {
setgeometry(250,100,100,30)
settext("Second")
setclickevent("second()")
}

showmaximized()
}
exec()
}

56.35. Creating More than one Window 577


Ring Documentation, Release 1.5

func second
win2 = new qwidget() {
setwindowtitle("Second")
setgeometry(100,100,500,500)
setwindowflags(Qt_dialog)
show()
}

The application during the runtime

56.36 Playing Sound

Example:
Load "guilib.ring"
new qapp {
win1 = new qwidget() {
setwindowtitle("play sound!") show()
}
new qmediaplayer() {
setmedia(new qurl("footstep.wav"))
setvolume(50) play()
}
exec()
}

56.37 Using the QColorDialog Class

Example:

56.36. Playing Sound 578


Ring Documentation, Release 1.5

Load "guilib.ring"

oApp = new myapp { start() }

Class MyApp

oColor win1

Func start

myapp = new qapp

win1 = new qMainWindow() {


setwindowtitle("Color Dialog")
setgeometry(100,100,400,400)
}

new qpushbutton(win1) {
setgeometry(10,10,100,30)
settext("Get Color")
setclickevent("oApp.pColor()")
}

win1.show()
myapp.exec()

Func pColor
myobj = new qcolordialog()
aColor = myobj.GetColor()
r=acolor[1] g=acolor[2] b=acolor[3]
win1.setstylesheet("background-color: rgb("+r+", " + g+ "," + b + ")")

The application during the runtime

56.37. Using the QColorDialog Class 579


Ring Documentation, Release 1.5

56.38 Using qLCDNumber Class

In this example we will learn about using the qLCDNumber class


Load "guilib.ring"

New qApp
{
win1 = new qWidget()
{
setwindowtitle("LCD Number")
setgeometry(100,100,250,120)

new qLCDNumber(win1)
{
setgeometry(10,10,100,40)
display(100)

new qLCDNumber(win1)
{
setgeometry(10,60,100,40)
display(80)

show()
}

exec()
}

The application during the runtime

56.39 Movable Label Example


Load "guilib.ring"

new qApp {

win1 = new qWidget()


{

56.38. Using qLCDNumber Class 580


Ring Documentation, Release 1.5

label1 = new qLabel(win1)


{
setText("Welcome")
setgeometry(10,10,200,50)
setstylesheet("color: purple ; font-size: 30pt;")
}

new qTimer(win1)
{
setInterVal(10)
setTimeOutEvent("pMove()")
start()
}

setWindowTitle("Movable Label")
setgeometry(100,100,600,80)
setStyleSheet("background-color: white;")
show()

exec()
}

Func pMove
label1
{
move(x()+1,y())
if x() > 600
move(10,y())
ok
}

The application during the runtime

56.40 QMessagebox Example

In this section we will learn how to check the output of the Message box
Load "guilib.ring"

new qApp {
win1 = new qWidget()
{
label1 = new qpushbutton(win1)
{
setText("Test")
setgeometry(10,10,200,50)

56.40. QMessagebox Example 581


Ring Documentation, Release 1.5

setstylesheet("color: purple ; font-size: 30pt;")


setclickevent("pWork()")
}
setWindowTitle("Messagebox")
setgeometry(100,100,600,80)
setStyleSheet("background-color: white;")
show()
}
exec()
}

func pWork
new qmessagebox(win1)
{
setwindowtitle("messagebox title")
settext("messagebox text")
setInformativeText("Do you want to save your changes?")
setstandardbuttons(QMessageBox_Yes | QMessageBox_No | QMessageBox_Close)
result = exec()
win1 {
if result = QMessageBox_Yes
setwindowtitle("Yes")
but result = QMessageBox_No
setwindowtitle("No")
but result = QMessageBox_Close
setwindowtitle("Close")
ok
}
}

The application during the runtime

56.41 Using QInputDialog Class

In the next example we will learn about using the QInputDialog class

56.41. Using QInputDialog Class 582


Ring Documentation, Release 1.5

Load "guilib.ring"

New QApp {

Win1 = New QWidget () {

SetGeometry(100,100,400,400)
SetWindowTitle("Input Dialog")

New QPushButton(win1)
{

SetText ("Input Dialog")


SetGeometry(100,100,100,30)
SetClickEvent("pWork()")
}

Show()
}

exec()
}

Func pWork
oInput = New QInputDialog(win1)
{
setwindowtitle("What is your name?")
setgeometry(100,100,400,50)
setlabeltext("User Name")
settextvalue("Mahmoud")
lcheck = exec()
if lCheck win1.setwindowtitle(oInput.textvalue()) ok
}

The application during the runtime

56.41. Using QInputDialog Class 583


Ring Documentation, Release 1.5

56.42 Dialog Functions

We have the next functions


SetDialogIcon(cIconFile)
MsgInfo(cTitle,cMessage)
ConfirmMsg(cTitle,cMessage) --> lResult
InputBox(cTitle,cMessage) --> cValue
InputBoxInt(cTitle,cMessage) --> nValue
InputBoxNum(cTitle,cMessage) --> nValue
InputBoxPass(cTitle,cMessage) --> cValue

Example
load "guilib.ring"

new qApp
{
SetDialogIcon("notepad.png")
msginfo(:Ring,:Welcome)
see confirmMsg(:Ring,"Are you sure?") + nl
see InputBoxNum(:Ring,"Enter Number(double) :") + nl
see InputBox(:Ring,"Enter Value :") + nl
see InputBoxInt(:Ring,"Enter Number(int)") + nl
see InputBoxPass(:Ring,"Enter Password") +nl
}

56.42. Dialog Functions 584

Vous aimerez peut-être aussi