SlideShare a Scribd company logo
Ring Documentation, Release 1.2
47.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()
47.34. Printing using QPrinter 430
Ring Documentation, Release 1.2
}
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")
47.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()
}
47.35. Creating More than one Window 431
Ring Documentation, Release 1.2
func second
win2 = new qwidget() {
setwindowtitle("Second")
setgeometry(100,100,500,500)
setwindowflags(Qt_dialog)
show()
}
The application during the runtime
47.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()
}
47.37 Using the QColorDialog Class
Example:
47.36. Playing Sound 432
Ring Documentation, Release 1.2
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
47.37. Using the QColorDialog Class 433
Ring Documentation, Release 1.2
47.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
47.39 Movable Label Example
Load "guilib.ring"
new qApp {
win1 = new qWidget()
{
47.38. Using qLCDNumber Class 434
Ring Documentation, Release 1.2
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
47.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)
47.40. QMessagebox Example 435
Ring Documentation, Release 1.2
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
47.41 Using QInputDialog Class
In the next example we will learn about using the QInputDialog class
47.41. Using QInputDialog Class 436
Ring Documentation, Release 1.2
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
47.41. Using QInputDialog Class 437
Ring Documentation, Release 1.2
47.42 KeyPress and Mouse Move Events
In this example we will learn how to use the Events Filter to know about KeyPress and Mouse Move Events
Load "guilib.ring"
new qApp {
win1 = new qWidget()
{
setWindowTitle("Test using Event Filter!")
setGeometry(100,100,400,400)
setmousetracking(true)
myfilter = new qallevents(win1)
myfilter.setKeyPressEvent("pWork()")
myfilter.setMouseButtonPressevent("pClick()")
myfilter.setmousemoveevent("pMove()")
installeventfilter(myfilter)
show()
}
exec()
}
47.42. KeyPress and Mouse Move Events 438
Ring Documentation, Release 1.2
func pWork
win1.setwindowtitle('KeyPress! : ' + myfilter.getkeycode())
func pClick
new qmessagebox(win1) {
setgeometry(100,100,400,100)
setwindowtitle("click event!")
settext("x : " + myfilter.getx() +
" y : " + myfilter.gety() + " button : " +
myfilter.getbutton() )
show()
}
func pMove
win1.setwindowtitle("Mouse Move , X : " + myfilter.getx() +
" Y : " + myfilter.gety() )
The application during the runtime
47.43 Moving Objects using the Mouse
In the next example we will learn how to program movable objects where the user can move a label
Load "guilib.ring"
lPress = false
47.43. Moving Objects using the Mouse 439

More Related Content

What's hot (20)

PDF
The Ring programming language version 1.6 book - Part 69 of 189
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.7 book - Part 72 of 196
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.4 book - Part 17 of 30
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.3 book - Part 47 of 88
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.1 book - Part 63 of 180
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.9 book - Part 78 of 210
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.2 book - Part 45 of 84
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.2 book - Part 64 of 181
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5 book - Part 11 of 31
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.4 book - Part 16 of 30
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.8 book - Part 74 of 202
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.3 book - Part 74 of 184
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.8 book - Part 71 of 202
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.4.1 book - Part 17 of 31
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 76 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.1 book - Part 60 of 180
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.2 book - Part 62 of 181
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.1 book - Part 64 of 180
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.3 book - Part 50 of 88
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.4 book - Part 66 of 185
Mahmoud Samir Fayed
 
The Ring programming language version 1.6 book - Part 69 of 189
Mahmoud Samir Fayed
 
The Ring programming language version 1.7 book - Part 72 of 196
Mahmoud Samir Fayed
 
The Ring programming language version 1.4 book - Part 17 of 30
Mahmoud Samir Fayed
 
The Ring programming language version 1.3 book - Part 47 of 88
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 63 of 180
Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 78 of 210
Mahmoud Samir Fayed
 
The Ring programming language version 1.2 book - Part 45 of 84
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.2 book - Part 64 of 181
Mahmoud Samir Fayed
 
The Ring programming language version 1.5 book - Part 11 of 31
Mahmoud Samir Fayed
 
The Ring programming language version 1.4 book - Part 16 of 30
Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 74 of 202
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 74 of 184
Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 71 of 202
Mahmoud Samir Fayed
 
The Ring programming language version 1.4.1 book - Part 17 of 31
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 76 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 60 of 180
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.2 book - Part 62 of 181
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 64 of 180
Mahmoud Samir Fayed
 
The Ring programming language version 1.3 book - Part 50 of 88
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.4 book - Part 66 of 185
Mahmoud Samir Fayed
 

Viewers also liked (10)

PDF
VIJAYA OOHMEDIA SOLUTIONS PVT LTD
asanand83
 
PDF
Gromadske slovo (18.02.2017)
Gromadske Slovo
 
PPTX
Controversias actuales en el manejo de cáncer colorrectal metastàsico
Mauricio Lema
 
PPTX
Discussion Board week 6
Miranda Fiore
 
DOCX
Trabajo - Smartphones y Tablets
Angel Guerrero
 
PDF
The Ring programming language version 1.2 book - Part 7 of 84
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.2 book - Part 9 of 84
Mahmoud Samir Fayed
 
PDF
Automatic control and mixed sensitivity Hinf control
René Galindo
 
PDF
Cognub healthcare offerings
Cognub Decision Solutions
 
PPTX
Avisos igreja 180217
Fabrizio Fuga
 
VIJAYA OOHMEDIA SOLUTIONS PVT LTD
asanand83
 
Gromadske slovo (18.02.2017)
Gromadske Slovo
 
Controversias actuales en el manejo de cáncer colorrectal metastàsico
Mauricio Lema
 
Discussion Board week 6
Miranda Fiore
 
Trabajo - Smartphones y Tablets
Angel Guerrero
 
The Ring programming language version 1.2 book - Part 7 of 84
Mahmoud Samir Fayed
 
The Ring programming language version 1.2 book - Part 9 of 84
Mahmoud Samir Fayed
 
Automatic control and mixed sensitivity Hinf control
René Galindo
 
Cognub healthcare offerings
Cognub Decision Solutions
 
Avisos igreja 180217
Fabrizio Fuga
 
Ad

Similar to The Ring programming language version 1.2 book - Part 46 of 84 (20)

PDF
The Ring programming language version 1.5.3 book - Part 75 of 184
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.9 book - Part 76 of 210
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 77 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.1 book - Part 62 of 180
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.6 book - Part 68 of 189
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.2 book - Part 61 of 181
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.2 book - Part 63 of 181
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.4 book - Part 64 of 185
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.6 book - Part 67 of 189
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 72 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.3 book - Part 81 of 184
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.9 book - Part 71 of 210
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.3 book - Part 70 of 184
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.9 book - Part 73 of 210
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.9 book - Part 74 of 210
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.5.1 book - Part 61 of 180
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.3 book - Part 48 of 88
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.9 book - Part 93 of 210
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.7 book - Part 67 of 196
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.7 book - Part 68 of 196
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 75 of 184
Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 76 of 210
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 77 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 62 of 180
Mahmoud Samir Fayed
 
The Ring programming language version 1.6 book - Part 68 of 189
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.2 book - Part 61 of 181
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.2 book - Part 63 of 181
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.4 book - Part 64 of 185
Mahmoud Samir Fayed
 
The Ring programming language version 1.6 book - Part 67 of 189
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 72 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 81 of 184
Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 71 of 210
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 70 of 184
Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 73 of 210
Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 74 of 210
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 61 of 180
Mahmoud Samir Fayed
 
The Ring programming language version 1.3 book - Part 48 of 88
Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 93 of 210
Mahmoud Samir Fayed
 
The Ring programming language version 1.7 book - Part 67 of 196
Mahmoud Samir Fayed
 
The Ring programming language version 1.7 book - Part 68 of 196
Mahmoud Samir Fayed
 
Ad

More from Mahmoud Samir Fayed (20)

PDF
The Ring programming language version 1.10 book - Part 212 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 211 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 210 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 208 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 207 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 205 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 206 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 204 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 203 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 202 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 201 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 200 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 199 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 198 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 197 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 196 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 195 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 194 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 193 of 212
Mahmoud Samir Fayed
 
PDF
The Ring programming language version 1.10 book - Part 192 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 212 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 211 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 210 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 208 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 207 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 205 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 206 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 204 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 203 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 202 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 201 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 200 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 199 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 198 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 197 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 196 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 195 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 194 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 193 of 212
Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 192 of 212
Mahmoud Samir Fayed
 

Recently uploaded (20)

PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PPTX
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 

The Ring programming language version 1.2 book - Part 46 of 84

  • 1. Ring Documentation, Release 1.2 47.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() 47.34. Printing using QPrinter 430
  • 2. Ring Documentation, Release 1.2 } 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") 47.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() } 47.35. Creating More than one Window 431
  • 3. Ring Documentation, Release 1.2 func second win2 = new qwidget() { setwindowtitle("Second") setgeometry(100,100,500,500) setwindowflags(Qt_dialog) show() } The application during the runtime 47.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() } 47.37 Using the QColorDialog Class Example: 47.36. Playing Sound 432
  • 4. Ring Documentation, Release 1.2 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 47.37. Using the QColorDialog Class 433
  • 5. Ring Documentation, Release 1.2 47.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 47.39 Movable Label Example Load "guilib.ring" new qApp { win1 = new qWidget() { 47.38. Using qLCDNumber Class 434
  • 6. Ring Documentation, Release 1.2 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 47.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) 47.40. QMessagebox Example 435
  • 7. Ring Documentation, Release 1.2 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 47.41 Using QInputDialog Class In the next example we will learn about using the QInputDialog class 47.41. Using QInputDialog Class 436
  • 8. Ring Documentation, Release 1.2 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 47.41. Using QInputDialog Class 437
  • 9. Ring Documentation, Release 1.2 47.42 KeyPress and Mouse Move Events In this example we will learn how to use the Events Filter to know about KeyPress and Mouse Move Events Load "guilib.ring" new qApp { win1 = new qWidget() { setWindowTitle("Test using Event Filter!") setGeometry(100,100,400,400) setmousetracking(true) myfilter = new qallevents(win1) myfilter.setKeyPressEvent("pWork()") myfilter.setMouseButtonPressevent("pClick()") myfilter.setmousemoveevent("pMove()") installeventfilter(myfilter) show() } exec() } 47.42. KeyPress and Mouse Move Events 438
  • 10. Ring Documentation, Release 1.2 func pWork win1.setwindowtitle('KeyPress! : ' + myfilter.getkeycode()) func pClick new qmessagebox(win1) { setgeometry(100,100,400,100) setwindowtitle("click event!") settext("x : " + myfilter.getx() + " y : " + myfilter.gety() + " button : " + myfilter.getbutton() ) show() } func pMove win1.setwindowtitle("Mouse Move , X : " + myfilter.getx() + " Y : " + myfilter.gety() ) The application during the runtime 47.43 Moving Objects using the Mouse In the next example we will learn how to program movable objects where the user can move a label Load "guilib.ring" lPress = false 47.43. Moving Objects using the Mouse 439