Paste number 63905: Qt tutorial 4

Paste number 63905: Qt tutorial 4
Pasted by: sohail
When:2 years, 1 month ago
Share:Tweet this! | http://paste.lisp.org/+1DB5
Channel:None
Paste contents:
Raw Source | XML | Display As
(in-package :qt)

(defmacro qsignal (sig)
  (concatenate 'string "2" sig))

(defmacro qslot (slot)
  (concatenate 'string "1" slot))

(defparameter *app* (make-instance 'qlisp-application))

(defclass mywidget (qwidget) ())

(defmethod initialize-instance :after ((self mywidget)
                                       &rest args)
  (declare (ignore args))
  (let ((quit (make-instance 'qpush-button
                             :text (make-instance 'qstring
                                                  :ch "Quit")))
        (lcd (make-instance 'qlcdnumber :numdigits 2))
        (slider (make-instance 'qslider :orientation Qt-Horizontal))
        (layout (make-instance 'qvbox-layout)))
    (qwidget-set-font quit
                      (make-instance 'qfont
                                     :family (make-instance 'qstring
                                                            :ch "Times")
                                     :pointsize 18
                                     :weight QFont-Bold))
    (qlcdnumber-set-segment-style lcd QLCDNumber-Filled)
    (qabstract-slider-set-range slider 0 99)
    (qabstract-slider-set-value slider 0)

    (qobject-connect quit (qsignal "clicked()")
                     *app* (qslot "quit()"))
    (qobject-connect slider (qsignal "valueChanged(int)")
                     lcd (qslot "display(int)"))
    
    (qlayout-add-widget layout quit)
    (qlayout-add-widget layout lcd)
    (qlayout-add-widget layout slider)
    (qwidget-set-layout self layout)))

(let ((widget (make-instance 'mywidget)))
  (qwidget-show widget)
  (qapplication-exec))

(sb-ext:quit)

This paste has no annotations.

Colorize as:
Show Line Numbers

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.