Update BUILD
[lqt/mk.git] / test / t7.lua
blob7c6bba58a6227531059c2ed2418471df442b635a
1 #!/usr/bin/lua
3 require'qtcore'
4 require'qtgui'
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)
16 slider:setValue(0)
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()
24 layout:addWidget(lcd)
25 layout:addWidget(slider)
26 this:setLayout(layout)
27 return this
28 end
30 local new_MyWidget = function(...)
31 local this = QWidget.new(...)
33 local quit = QPushButton.new('Quit')
34 quit:setFont(QFont('Times', 18, 75))
36 QObject.connect(quit, '2clicked()', this, '1close()')
38 local grid = QGridLayout.new()
39 local previousRange = nil
40 for row = 1, 3 do
41 for column = 1, 3 do
42 local lcdrange = LCD_Range()
43 grid:addWidget(lcdrange, row, column)
44 if previousRange then
45 QObject.connect(lcdrange, '2valueChanged(int)',
46 previousRange, '1setValue(int)')
47 end
48 previousRange = lcdrange
49 end
50 end
52 local layout = QVBoxLayout.new()
53 layout:addWidget(quit)
54 layout:addLayout(grid)
55 this:setLayout(layout)
56 return this
57 end
59 app = QApplication.new(1 + select('#', ...), {arg[0], ...})
60 app.__gc = app.delete -- take ownership of object
62 widget = new_MyWidget()
63 widget:show()
65 app.exec()