| Paste number 63906: | Qt tutorial 6 |
| Pasted by: | sohail |
| When: | 2 years, 1 month ago |
| Share: | Tweet this! | http://paste.lisp.org/+1DB6 |
| Channel: | None |
| Paste contents: |
(in-package :qt)
(defmacro qsignal (sig)
(concatenate 'string "2" sig))
(defmacro qslot (slot)
(concatenate 'string "1" slot))
(defparameter *app* (make-instance 'qlisp-application))
(defclass lcd-range (qwidget) ())
(defmethod initialize-instance :after ((self lcd-range)
&rest args)
(declare (ignore args))
(let ((lcd (make-instance 'qlcdnumber
:numdigits 2))
(slider (make-instance 'qslider
:orientation Qt-Horizontal))
(layout (make-instance 'qvbox-layout)))
(qlcdnumber-set-segment-style lcd QLCDNumber-Filled)
(qabstract-slider-set-range slider 0 99)
(qabstract-slider-set-value slider 0)
(qobject-connect slider (qsignal "valueChanged(int)")
lcd (qslot "display(int)"))
(qlayout-add-widget layout lcd)
(qlayout-add-widget layout slider)
(qwidget-set-layout self layout)))
(defclass my-widget (qwidget)
())
(defmethod initialize-instance :after ((self my-widget)
&rest args)
(declare (ignore args))
(let ((quit (make-instance 'qpush-button
:text (make-instance 'qstring :ch "Quit")))
(grid (make-instance 'qgrid-layout))
(layout (make-instance 'qvbox-layout)))
(qwidget-set-font quit (make-instance 'qfont
:family (make-instance 'qstring
:ch "Times")
:pointsize 18
:weight QFont-Bold))
(qobject-connect quit (qsignal "clicked()")
*app* (qslot "quit()"))
(loop for row from 0 to 2
do (loop for column from 0 to 2
do (let ((lcd-range (make-instance 'lcd-range)))
(qgrid-layout-add-widget grid lcd-range row column))))
(qlayout-add-widget layout quit)
(qbox-layout-add-layout layout grid)
(qwidget-set-layout self layout)))
(let ((widget (make-instance 'my-widget)))
(qwidget-show widget)
(qapplication-exec))
(sb-ext:quit)
This paste has no annotations.