6 local LCD_Range
= function(...)
7 local this
= QWidget
.new(...)
8 --print(this:metaObject():className(), this:metaObject():methodCount())
9 --print(this:metaObject():className(), this:metaObject():methodCount())
11 local lcd
= QLCDNumber
.new()
12 lcd
:setSegmentStyle
'Filled'
14 local slider
= QSlider
.new
'Horizontal'
15 slider
:setRange(0, 99)
18 this
:__addmethod('valueChanged(int)')
19 this
:__addmethod('setValue(int)', function(_
, val
) slider
:setValue(val
) end)
20 QObject
.connect(slider
, '2valueChanged(int)', lcd
, '1display(int)')
21 QObject
.connect(slider
, '2valueChanged(int)', this
, '2valueChanged(int)')
23 local layout
= QVBoxLayout
.new()
25 layout
:addWidget(slider
)
26 this
:setLayout(layout
)
30 local new_MyWidget
= function(...)
31 local this
= QWidget
.new(...)
33 local quit
= QPushButton
.new(QString
.new
'Quit')
34 quit
:setFont(QFont
.new(QString
.new
'Times', 18, 75))
36 QObject
.connect(quit
, '2clicked()', this
, '1close()')
38 local grid
= QGridLayout
.new()
39 local previousRange
= nil
42 local lcdrange
= LCD_Range()
43 grid
:addWidget(lcdrange
, row
, column
)
45 QObject
.connect(lcdrange
, '2valueChanged(int)',
46 previousRange
, '1setValue(int)')
48 previousRange
= lcdrange
52 local layout
= QVBoxLayout
.new()
53 layout
:addWidget(quit
)
54 layout
:addLayout(grid
)
55 this
:setLayout(layout
)
59 app
= QApplication
.new(1 + select('#', ...), {arg
[0], ...})
60 app
.__gc
= app
.delete
-- take ownership of object
62 widget
= new_MyWidget()