Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
#######
#
# E-scripts on Qt
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/qt.e>
#           or at <http://angg.twu.net/e/qt.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




# «.qt-debs»		(to "qt-debs")
# «.qt4-x11-deb-src»	(to "qt4-x11-deb-src")
# «.tutorial»		(to "tutorial")
# «.qwt»		(to "qwt")
# «.qtprogramming»	(to "qtprogramming")
# «.qpainter0»		(to "qpainter0")
# «.QPainter»		(to "QPainter")




#####
#
# Qt from the debs
# 2007dec28
#
#####

# «qt-debs»  (to ".qt-debs")
# (find-zsh "installeddebs | sort" "qt")
# (find-zsh "installeddebs | sort | grep qt")
# (find-zsh "availabledebs | sort" "qt")
# (find-zsh "availabledebs | sort | grep qt")
# (find-status   "libqt4-ruby")
# (find-vldifile "libqt4-ruby.list")
# (find-udfile   "libqt4-ruby/")
# (find-status   "libqt4-ruby1.8")
# (find-vldifile "libqt4-ruby1.8.list")
# (find-udfile   "libqt4-ruby1.8/")

# (find-zsh0 "installeddebs | sort | grep qt")

Docs:

# http://doc.trolltech.com/4.3/metaobjects.html
# http://doc.trolltech.com/4.2/metaobjects.html
# http://doc.trolltech.com/3.3/
# http://zumbi/doc/qt335/
# http://zumbi/doc/qt335/tools.html


# (find-status   "qt4-doc")
# (find-vldifile "qt4-doc.list")
# (find-udfile   "qt4-doc/")
# (code-c-d "qt4doc" "/usr/share/qt4/doc/html/")
# (find-qt4docfile "")
# (find-qt4docw3m "index.html")
# (find-qt4docw3m "how-to-learn-qt.html")
# (find-qt4docw3m "tutorial.html")
# (find-qt4docw3m "tutorial-t1.html")
# (find-qt4docw3m "qmake-manual.html")
# (find-qt4docw3m "moc.html")


IPC:
# (find-qt4docw3m "intro-to-dbus.html")
# (find-qt4docfile "" "qtopiacore-")

google: site:doc.trolltech.com/3.3 IPC
google: site:doc.trolltech.com/3.3 interprocess

http://doc.trolltech.com/qtopia4.2/ipc.html


# Classes importantes:
# (find-qt4docfile "")
# (find-qt4docw3m "qstring.html")
# (find-qt4docw3m "qbytearray.html")
# (find-qt4docw3m "qtextstream.html")
# Talvez gerais demais:
# (find-qt4docw3m "qobject.html")
# (find-qt4docw3m "qwidget.html")
# Non-gui:
# (find-qt4docw3m "tools.html")




#####
#
# qt4-x11 (from the debian sources)
# 2008jan08
#
#####

# «qt4-x11-deb-src»  (to ".qt4-x11-deb-src")
# http://ftp.de.debian.org/debian/pool/main/q/qt4-x11/
psne http://ftp.de.debian.org/debian/pool/main/q/qt4-x11/qt4-x11_4.2.1-2+etch1.dsc
psne http://ftp.de.debian.org/debian/pool/main/q/qt4-x11/qt4-x11_4.2.1-2+etch1.diff.gz
psne http://ftp.de.debian.org/debian/pool/main/q/qt4-x11/qt4-x11_4.2.1.orig.tar.gz
#*
rm -Rv ~/bigsrc/qt4-x11/
mkdir  ~/bigsrc/qt4-x11/
cd $S/http/ftp.de.debian.org/debian/pool/main/q/qt4-x11/
cp -v qt4-x11_4.2.1* ~/bigsrc/qt4-x11/
cd     ~/bigsrc/qt4-x11/
dpkg-source -sn -x qt4-x11_4.2.1-2+etch1.dsc
cd     ~/bigsrc/qt4-x11/qt4-x11-4.2.1/
# dpkg-buildpackage -us -uc -b -rfakeroot     |& tee odb

cd ~/bigsrc/qt4-x11/qt4-x11-4.2.1/
find * -type f | sort > .files

#*
# (find-fline "~/bigsrc/qt4-x11/")
* (eepitch-shell)
cd ~/bigsrc/qt4-x11/
sudo dpkg -i *.deb

#*
# (code-c-d "qt4x11" "~/bigsrc/qt4-x11/qt4-x11-4.2.1/")
# (find-qt4x11file "")
# (find-qt4x11file ".files")
# (find-qt4x11file "README" "'qtdemo'")
# (find-qt4x11file "examples/")
# (find-qt4x11file "examples/tutorial/")
# (find-qt4x11file "examples/tutorial/README")
# (find-qt4x11file "examples/tutorial/t1/")
# (find-qt4x11file "examples/tutorial/t1/main.cpp")
# (find-qt4x11file "examples/tutorial/t1/main.cpp")
# (find-qt4x11w3m "doc/html/tutorial.html")

#*
# «tutorial»  (to ".tutorial")
rm -Rv /tmp/qtdemos/
mkdir  /tmp/qtdemos/
cd     /tmp/qtdemos/
cd ~/bigsrc/qt4-x11/qt4-x11-4.2.1/examples/tutorial/
cp -Rv * /tmp/qtdemos/
cd     /tmp/qtdemos/

#*

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/qtdemos/")
# (find-fline "/tmp/qtdemos/t1/")

cd /tmp/qtdemos/
cd /tmp/qtdemos/t1/
qmake-qt4 -project
qmake-qt4 t1.pro
make CXX="gcc -g" |& tee om

for i in t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14; do
  cd /tmp/qtdemos/$i
    qmake-qt4 -project
    qmake-qt4 $i.pro
    make CXX="gcc -g" |& tee om
done
cd /tmp/qtdemos/

#*
# (find-fline "/tmp/qtdemos/")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/qtdemos/
t10/t10
t14/t14




#####
#
# pmake
# 2007dec20
#
#####

# todo: move to make.e
# (find-status   "pmake")
# (find-vldifile "pmake.list")
# (find-udfile   "pmake/")
# (find-man "pmake")




#####
#
# qwt
# 2007dec28
#
#####

# «qwt»  (to ".qwt")
# (find-dmissing "qwt")
# (find-zsh "availabledebs | sort | grep qwt")

apti libqwt-dev libqwt-doc libqwt4c2

# (find-status   "libqwt-dev")
# (find-vldifile "libqwt-dev.list")
# (find-udfile   "libqwt-dev/")
# (find-status   "libqwt-doc")
# (find-vldifile "libqwt-doc.list")
# (find-udfile   "libqwt-doc/")
# (find-status   "libqwt4c2")
# (find-vldifile "libqwt4c2.list")
# (find-udfile   "libqwt4c2/")

# (code-c-d "qwtdoc" "/usr/share/doc/libqwt-doc/html/")
# (find-qwtdocfile "")
# (find-qwtdocw3m "index.html")





#####
#
# C++ GUI Programming with Qt (book)
# 2006sep23
#
#####

# «qtprogramming»  (to ".qtprogramming")
# (find-es "ssh" "snailbook")
# http://www.flazx.com/
# (find-status   "libchm-bin")
# (find-vldifile "libchm-bin.list")
# (find-udfile   "libchm-bin/")
#*
mkdir /tmp/qtprogramming/
cd    /tmp/
extract_chmLib \
  ~/books/Prentice.Hall.PTR.C.plus.plus.GUI.Programming.with.Qt.4.Jun.2006.chm \
  /tmp/qtprogramming/

#*
# (find-fline "/tmp/")
# (find-fline "/tmp/qtprogramming/0131872494/")
# (code-c-d "qtprogramming" "/tmp/qtprogramming/0131872494/")
# (find-qtprogrammingfile "")
# (find-qtprogrammingw3m "toc.html")
# (find-qtprogrammingw3m "ch01lev1sec1.html")

#*
rm -Rv /tmp/qtdemo/
mkdir  /tmp/qtdemo/
cd     /tmp/qtdemo/

cat > hello.cpp <<'%%%'
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    return app.exec();
}
%%%

qmake-qt4 -project
qmake-qt4 qtdemo.pro
make CXX="gcc -g" |& tee om

#*
# (find-fline "/tmp/qtdemo/")

#*
(defun eepitch-qtdemo-gdb ()
  (eepitch-gdb "*gud-qtdemo*" "gdb --annotate=3 /tmp/qtdemo/qtdemo"))
(defun eepitch-qtdemo-gdb-kill ()
  (eepitch-gdb-kill "*gud-qtdemo*"))

* (eepitch-qtdemo-gdb)
* (eepitch-qtdemo-gdb-kill)
* (eepitch-qtdemo-gdb)
br main
run





#####
#
# qpainter0
# 2008feb07
#
#####

# «qpainter0»  (to ".qpainter0")
# (find-qtdemo-links "qtpainter")
# (find-fline "/tmp/qtdemos/t8/")
# (find-fline "/tmp/qtdemos/t8/cannonfield.h")
# (find-fline "/tmp/qtdemos/t8/cannonfield.cpp")
# (find-fline "/tmp/qtdemos/t8/main.cpp")
#*
rm -Rv /tmp/qpainter0/
mkdir  /tmp/qpainter0/
cd     /tmp/qpainter0/
cat > qpainter0.pro <<'%%%'
TEMPLATE = app
CONFIG   += qt warn_on
HEADERS  =
SOURCES  = main.cpp
TARGET   = qpainter0
QTDIR_build:REQUIRES="contains(QT_CONFIG, small-config)"
%%%

cat > main.cpp <<'%%%'
#include <QApplication>
#include <QPushButton>
#include <QPainter>
#include <QGridLayout>
class CannonField : public QWidget {
    Q_OBJECT
  public:
    CannonField(QWidget *parent = 0) {};
  protected:
    void paintEvent(QPaintEvent *event);
};
void CannonField::paintEvent(QPaintEvent * /* event */) {
  QPainter painter(this);
  painter.setRenderHint(QPainter::Antialiasing, true);
  painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));
  painter.setBrush(QBrush(Qt::green, Qt::SolidPattern));
  painter.drawEllipse(80, 80, 400, 240);
  painter.drawText(200, 200, tr("Foo = ") + "bar");
}
int main(int argc, char *argv[]) {
  QApplication app(argc, argv);
  CannonField cannonfield;
  cannonfield.show();
  return app.exec();
}

#include "main.moc"
%%%

qmake-qt4 -project
qmake-qt4 qpainter0.pro
make CXX="gcc -g" |& tee om

./qpainter0

#*





#####
#
# qpainter1
# 2008feb07
#
#####

# «qpainter1»  (to ".qpainter1")
# (find-qtdemo-links "qtpainter")
# (find-fline "/tmp/qtdemos/t8/")
# (find-fline "/tmp/qtdemos/t8/cannonfield.h")
# (find-fline "/tmp/qtdemos/t8/cannonfield.cpp")
# (find-fline "/tmp/qtdemos/t8/main.cpp")
#*
rm -Rv /tmp/qpainter1/
mkdir  /tmp/qpainter1/
cd     /tmp/qpainter1/
cat > qpainter1.pro <<'%%%'
TEMPLATE = app
CONFIG   += qt warn_on
HEADERS  =
SOURCES  = main.cpp
TARGET   = qpainter1
QTDIR_build:REQUIRES="contains(QT_CONFIG, small-config)"
%%%

cat > main.cpp <<'%%%'
#include <QApplication>
#include <QPushButton>
#include <QPainter>
#include <QGridLayout>
// QPainter * painter;
class CannonField : public QWidget {
    Q_OBJECT
  private:
    QPainter painter;
  public:
    CannonField(QWidget *parent = 0) : painter(this) {};
    // drawEllipse(int a, int b, int c, int d)
  protected:
    void paintEvent(QPaintEvent *event);
};
void CannonField::paintEvent(QPaintEvent * /* event */) {
  // QPainter painter(this);
  // painter = new QPainter(this);
  // painter = new QPainter(this);
  // QPainter painter(this);
  // painter.setRenderHint(QPainter::Antialiasing, true);
  painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));
  painter.setBrush(QBrush(Qt::green, Qt::SolidPattern));
  painter.drawEllipse(80, 80, 400, 240);
  painter.drawText(200, 200, QString("Foo = bar"));
}
// void CannonField::drawEllipse(int a, int b, int c, int d) {
//   painter.drawEllipse(80, 80, 400, 240);
// }
int main(int argc, char *argv[]) {
  QApplication app(argc, argv);
  CannonField cannonfield;
  cannonfield.show();
  return app.exec();
}

#include "main.moc"
%%%

qmake-qt4 -project
qmake-qt4 qpainter1.pro
make CXX="gcc -g" |& tee om

./qpainter1

#*





#####
#
# painter
# 2008feb07
#
#####

# «QPainter»  (to ".QPainter")
# (find-qtdemo-links "qtpainter")
# (find-qt4docw3m "qpainter.html")
# (find-qt4docw3m "layouts-basiclayouts.html")
# (find-qtprogrammingw3m "ch08lev1sec1.html")
# (find-qtprogrammingw3m "ch08lev1sec1.html" "draw the ellipse")
# (find-qtprogrammingw3m "toc.html")
# (find-qt4docw3m "qpaintdevice.html")
# (find-es "qt" "tutorial")
# (find-fline "/tmp/qtdemos/")
# (find-fline "/tmp/qtdemos/t1/")
# (find-fline "/tmp/qtdemos/t8/main.cpp")
# (find-fline "/tmp/qtdemos/t8/cannonfield.cpp")
# (find-qt4x11file "examples/tutorial/")
# (find-qt4x11file "examples/tutorial/t8/")
#*
rm -Rv /tmp/qtpainter/
mkdir  /tmp/qtpainter/
cd     /tmp/qtpainter/
cat > qtpainter.pro <<'%%%'
TEMPLATE = app
CONFIG   += qt warn_on
HEADERS  =
SOURCES  = main.cpp
TARGET   = qtpainter
QTDIR_build:REQUIRES="contains(QT_CONFIG, small-config)"
%%%

cat > main.cpp <<'%%%'
#include <QApplication>
#include <QPushButton>
#include <QPainter>
#include <QGridLayout>
// (find-fline "/tmp/qtdemos/t8/")
// (find-fline "/tmp/qtdemos/t8/cannonfield.h")
// (find-fline "/tmp/qtdemos/t8/cannonfield.cpp")
// (find-fline "/tmp/qtdemos/t8/main.cpp")

QPainter *painter;
class CannonField : public QWidget {
    Q_OBJECT
  public:
    CannonField(QWidget *parent = 0) {};
  protected:
    void paintEvent(QPaintEvent *event);
};
void CannonField::paintEvent(QPaintEvent * /* event */) {
  QPainter painter(this);
  painter = new QPainter(this);
  painter.setRenderHint(QPainter::Antialiasing, true);
  painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));
  painter.setBrush(QBrush(Qt::green, Qt::SolidPattern));
  painter.drawEllipse(80, 80, 400, 240);
  painter.drawText(200, 200, tr("Angle = ") + "foo");
}
int main(int argc, char *argv[]) {
  QApplication app(argc, argv);
  CannonField cannonfield;
  cannonfield.show();
  return app.exec();
}

#include "main.moc"
%%%

qmake-qt4 -project
qmake-qt4 qtpainter.pro
make CXX="gcc -g" |& tee om

./qtpainter

#*

  // QGridLayout *gridLayout = new QGridLayout;
  // gridLayout->addWidget(painter, 0, 0);
  // setLayout(gridLayout);
  // MyWidget widget;
  // widget.setGeometry(100, 100, 500, 355);
  // widget.show();



# (find-fline "/tmp/qtdemos/t8/main.cpp")
    MyWidget widget;
    widget.setGeometry(100, 100, 500, 355);
    widget.show();
    return app.exec();




// void MyWidget::paintEvent(QPaintEvent *event)
// {
//     QPainter painter(this);
//     /* ... */
// }






# (find-qt4docw3m "qmap.html")

# Academic Solutions to Academic Problems:
# http://doc.trolltech.com/qq/qq15-academic.html







#  Local Variables:
#  coding:               raw-text-unix
#  modes:                (fundamental-mode sh-mode)
#  ee-delimiter-hash:    "\n#*\n"
#  ee-delimiter-percent: "\n%*\n"
#  ee-anchor-format:     "«%s»"
#  End: