58 lines
1.5 KiB
Text
58 lines
1.5 KiB
Text
# Project : Greyscale bars/Display
|
|
|
|
load "guilib.ring"
|
|
|
|
paint = null
|
|
|
|
new qapp
|
|
{
|
|
win1 = new qwidget() {
|
|
setwindowtitle("Greyscale bars/Display")
|
|
setgeometry(100,100,500,600)
|
|
label1 = new qlabel(win1) {
|
|
setgeometry(10,10,400,400)
|
|
settext("")
|
|
}
|
|
new qpushbutton(win1) {
|
|
setgeometry(150,500,100,30)
|
|
settext("draw")
|
|
setclickevent("draw()")
|
|
}
|
|
show()
|
|
}
|
|
exec()
|
|
}
|
|
|
|
func draw
|
|
p1 = new qpicture()
|
|
color = new qcolor() {
|
|
setrgb(0,0,255,255)
|
|
}
|
|
pen = new qpen() {
|
|
setcolor(color)
|
|
setwidth(1)
|
|
}
|
|
paint = new qpainter() {
|
|
begin(p1)
|
|
setpen(pen)
|
|
|
|
for row=1 to 4
|
|
n=pow(2,(row+2))
|
|
w=1280/n
|
|
py=256*(4-row)
|
|
for b=0 to n-1
|
|
g=floor(255*b/(n-1))
|
|
if n=16 or n=64
|
|
g=255-g
|
|
ok
|
|
color2 = new qcolor()
|
|
color2.setrgb(g,g,g,255)
|
|
mybrush = new qbrush() {setstyle(1) setcolor(color2)}
|
|
paint.setbrush(mybrush)
|
|
paint.drawrect(w*b,py,w,256)
|
|
next
|
|
next
|
|
|
|
endpaint()
|
|
}
|
|
label1 { setpicture(p1) show() }
|