つくねの手帳

C++およびAndroidアプリ開発メインで何か書きたい

C++

Widgetの回転と枠線について

今回は、組み込み開発などにおいて、LCDの関係などでWidgetを回転させたい。という時に、QGraphicsSceneとQGtaphicsViewを用いた回転方法と、その際にWidgetに対してついてしまう枠線について書きたいと思います。例によって、Qtのversionは4.8です。先ず、W…

QtCreatorでデバッグ中にブレークポイントにとまるとアプリがクラッシュする

この現象はQtCreator2.5.2という古いバージョンで発生したものなので、現在のQtCreatorでは発生しないかもしれません。内容はタイトルの通りで、QtCreatorでQtプロジェクトのデバッグ実行中に、特定の場所、タイミングでブレークポイントんとに止まるとアプ…

QThreadとWorkerクラスの後処理

Qtでの非同期処理はQThreadクラスと自前のWorkerクラスで以下のように実装できる。Worker.h class Worker : public Qobject { Q_OBJECT public: Worker(); // 親を指定してしまうとスレッドに渡せなくなる。 ~Worker(); public slots: // 作業用スロット }; …

QStringからcharポインタを取り出す

今回はちょっとしたTips的な話。例によってQt4.8環境です。QStringは文字列をとても簡単に取り扱えるクラスですが、一度文字を渡してしまうと、 charとして取り出すのに一つ関数を余計に挟む必要があります。 取り出し方はこんな感じです。 #include "QStrin…

Qt 同じ単語に複数の翻訳をあてるのに少し頑張った話2

前回からの続きです。 例によって、Qtのバージョンは4.8.4です。 .tsファイルと.qmファイルを自動的に作れるようにexcelのマクロを組みます。 excelのシート上に、enum(識別子)として使うID、対応する表示文言を列挙します。 マクロでヘッダファイルにenumと…

Qt 同じ単語に複数の翻訳をあてるのに少し頑張った話1

この記事はQt4.8.4基準で記載します。Qtにはソース上の文字列を拾い上げて、翻訳用のファイルを作っておくことで、プログラム実行時に動的言語変換ができます。 具体的な手順は割愛しますが、 QLabel text; text.setText(tr("string")); のように、trでくく…

Qt クリック可能なQLabelの実装と独自シグナル/スロット

QLabelクラスはマウスクリック時動作の関数が用意されていませんが、独自にクリック時のシグナルを作成することでクリック時の動作を行いやすくなります。 // QClickableLabel.h // QLabelの拡張クラス定義 class QClickableLabel : public QLabel { Q_OBJEC…

Qt QWidgetの派生クラスへのスタイルシート設定

今日は、先日少しはまったQWidgetを基底クラスとしたクラスへのスタイルシート設定について。QWidgetクラスは背景色のスタイル設定がサポートされています。 しかし、QLabelなどのように、そのままsetStyleSheet()を呼んでも反映されません。 以下のように、…

Qt スタイルシート優先度と追加指定

前回スタイルシート設定について書いたので、その少し続きを… スタイルシート設定は後から設定した物が優先で使用されます。 widget->setStyleSheet("background-color : rgb( 0 , 0 , 0 );"); widget->setStyleSheet("background-color : rgb( 255 , 255 , …

Qt スタイルシート指定でのウィジェットデザイン

ウィジェットのスタイル指定が出来るsetStyleSheet(const QString &str)で、よく使いそうな記述をまとめようと思います。・背景色の指定 widget->setStyleSheet("background-color : rgb(255,255,255);");・文字色の指定 widget->setStyleSheet("color : rgb…