Qtのレイアウト
Layoutを使うらしい。
QVBoxLayoutを使ってみる。
サンプルとか見るとクラスメンバにする必要はなくて
コンストラクタの関数ローカル変数の使い捨てでいいみたい。
文字の下にスライダがでてきた。
Windowのサイズ変更に文字もスライダもついてくる。
QtのSLOTに悩む
QSliderなんてあるんだね。
使ってみた
こんな画面になった

ちゃんとスライダを動かすとそれに連動した数字が出る。
でも、なぜか別のWindow。
やっぱり一番トップにWidgetをおかないとひとつのWindowにならないのか。
親クラスを作ってみた。
C++はクラス宣言とインプリを分けなければならないのでちょっとめんどくさい。
#include <QApplication>
#include <QLCDNumber>
#include <QSlider>
// トップwindowのクラス
class MainWindow : public QWidget
{
public:
MainWindow(QWidget* parent = 0);
private:
QLCDNumber* lcd;
QSlider* slider;
};
// トップwindowのコンストラクタ
MainWindow::MainWindow(QWidget* parent)
: QWidget(parent)
{
lcd = new QLCDNumber(3,this);
slider = new QSlider(Qt::Horizontal,this);
connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
}
int main(int argc, char** argv)
{
QApplication app(argc, argv);
MainWindow* mainWindow = new MainWindow;
mainWindow->show();
return app.exec();
}

なんかぜんぜん違う感じになった。
スライダと文字が重なってる。Window広げても広がらないし。。。
QtのLCDぽい表示
QLCDNumber
なんでLCDぽい表示??
早速試してみた。
これはWindowを大きくすると文字も大きくなるようだ。
まぁ、それっぽいといえばそれっぽい。
数字が出てくるとインクリメントしたくなる。
タイマでインクリメントしたいんだけど、QTimerとかSLOTがよくわからず。
main関数でやるのは無理があるのかな。class作らないといけないのか?
反則技なんだろうけど、lcdのポインタを外に出してスレッド立ててみた。
Qt始めました
LinuxはAndroidと違ってGUI開発環境が揃ってない感じ。
今回はQtを使って見た。
インストールは開発環境ごと入れてしまう。
sudo apt-get install qtcreator
500Mぐらいダウンロードするようだ。
ここを参照して、まずはコマンドラインで実行してみる。
mkdir qt1
cd qt1
nano main.cpp
{
QApplication app(argc, argv);
QLabel* label = new QLabel("<h1>Hello Qt!</h1>");
label->show();
return app.exec();
}
qmake
make
ラベルが表示された。右のウインドウ。

インストールされたのはqt4.8みたい。
最新のqt5じゃないみたい。
qt4.8のリファレンスはこちら。
Winのリモートデスクトップで接続
普通はクロスコンパイルしてPCで開発するんだろうけど
せっかくRaspberry pi自体がだいぶ早いのでリモートで入ってみることにした。
今はWindowsのリモートデスクトップで接続できるんだね。
sudo apt-get install xrdp
これだけ。
Win8.1に標準で入ってるリモートデスクトップを起動して
Raspberry piのIPを入力するだけ。
結構感動モノ。
でも、キーボードが日本語にならない。
raspi-configで設定したのに反映されないみたい。
ここを参照してキーボード設定をインストールする
普通にXも使えるし、とても便利



