Qt

画像を扱うアプリケーションをWindows用として開発機以外で使用する時の注意

Qt

JPEG開くのに失敗する!と散々困って終わってみれば以前にもやったような気がしなくもない事だった。 次の画像形式をQtで扱う場合、QtHoge.dll以外にplugins/imageformats以下に入ってるdllが必要になる。 GIF ICON JPEG MNG SVG TIFF 上記の画像形式を扱う…

widgetの透過

Qt

setWindowOpacityはウィンドウそのものの透過率の設定。 ウィジェットを個別に透過させたい時は次の方法を取る。 // パレットを設定しautoFillBackgroundを利用して透明色で塗りつぶす。 widget->setPalette(QPalette::Background, QColor(255, 255, 255, 12…

Unix系OSにて、リンクするQtライブラリのパスを指定する

Qt

qmakeのproファイルにて以下の変数を設定する。 QMAKE_LFLAGS_RPATH QMAKE_RPATHDIR 例えば、proファイルにQMAKE_RPATHDIR=/opt/myqtと設定すると soファイルの検索リストの先頭に/opt/myqtが追加される。

Qtでアイコン取得

// システムアイコンの取得 QIcon icon = QCommonStyle().standardIcon(QStyle::SP_HOGEHOGE); // ファイルに設定されたアイコンの取得。 QIcon icon = QFileIconProvider().icon(QFileInfo(FILENAME)); ディレクトリのアイコンはシステムアイコンに含まれて…

Qt4.6.2で一部フォントにて半角英数が全角幅で表示されてしまう問題のubuntu10.04LTSにおける解決方法

Qtを使った自作ツールならまだしも、Skypeで表示幅が狂ってるのはものすごく気になるので直した。 一番簡単な解決策は日本語リポジトリを導入してapt-get update / apt-get upgradeを行う。当然採用。 http://www.ubuntulinux.jp/products/JA-Localized この…

phononが動かん

Qt

ubuntuでpulseaudio使ってる時にphonon使って音鳴らそうとすると動かない件。 ググってもいまいちよく分からない。というか解決策書いてあるページ出てきてるのか? 前はphonon使ってるアプリ動かす前にHOMEディレクトリの.pulse消したら一応動いてたけど、…

ウィンドウ枠を消し飛ばす

QWidgetの第二引数にQt::FramelessWindowHintを渡すだけ。 サンプルはQtのexamples/widgets/shapedclock。

QtScriptがすごく面白そう

だいぶQtにも慣れてきたのでQtScriptをいじり始めてみました。 QScriptEngine engine; QString script("1+2"), result; result = engine.evaluate( script ).toString(); これでresultに文字列の3がセットされます。 QtScriptはECMA Scriptをベースにしてい…

QObjectの親子関係とnew/delete

Qt

QObjectを継承しているクラスをnewしてオブジェクトを作る際、コンストラクタにQObjectを継承しているクラスのオブジェクトを親オブジェクトとして渡すと、親オブジェクトが破棄される際に子も自動で破棄されます。 つまり自分でdeleteする必要がなくなる訳…

よく分からん文字化け

Qt

Linux上で書いたQtアプリのソースコードをWindowsに持ち込んでそのままビルドする。失敗。 ソースコード(.h/.cppファイルのみ)をShift_JIS+CRLFに手直ししてビルド。無事成功。 QMessageBoxを使って表示するダイアログの文字だけが化けている。 日本語リテラ…

ネットワーク通信のクラスを使うときの注意

デフォルトでQtのメッセージループの中で非同期通信を行うので、main関数の中で必ずQApplicationのオブジェクトを作ってexec()を呼ぶ事。 そうしない場合、通信が終わる前にアプリが終わる。 signal/slotもQtのメッセージループの中でのみ有効なので同様に気…

Visual Studio 2008 で Qt を利用できるようにする。

Linux版しか使った事なかったので、Windows用に関してのメモ。 TrolltechからそのまんまWindows用のバイナリを落としてくると、MinGW用なのでVisual Studioでは使えないそうな。 で、Visual Studioで利用できるようにするためには自分でソースからビルドする…

QtでOpenGL - その3

GLUTによる「手抜き」OpenGL入門 が最後まで終わりました。 図形の描画はともかくとして、視点周りでかなり混乱・・・。 床井先生の書かれてる超基本編だけなら問題は無かったのですが、gluPerspectiveをglFrustumに変更するときにglOrthoと同じようなもん程…

QtでOpenGL - その2

GLUTによる「手抜き」OpenGL入門 を参考に多分2日目くらい。9.アニメーションまで終わった。 とりあえず立方体を三角関数使って簡単にアニメーションさせて喜べるようになりました。 関数名とかは当該ページを見れば分かるから考え方をメモ。 座標変換プロ…

qmakeを使うときの微妙なtips

書いてから思ったけど、tipsでは無い。1つしか書かないから。 qmake -projectする度に、自分が後からproファイルに追加した変更は消えてしまう。 20文字くらいしか足さないならいいけど、あれこれIncludeパスとか追加したりしたときは追加作業が余りにも面倒…

QtOpenGLモジュール使ってOpenGL

QtのQtOpenGLモジュールを使ってみました。 何故かあんまり日本語情報無いのね。 おかげでサンプルの謎な部分が何やってるのか検索かけてもさっぱり出てこない。 みんな違うの使ってるのだろうか。 当面はソースとにらめっこすることになったりするかもしれ…

Qt4:QStringをchar*にする方法と日本語を使えるようにする方法

#include <iostream> #include <QString> #include <QTextCodec> int main(int argc, char *argv[]){ // utf-8な文字列をQStringが受け付けるようにする。 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); // utf-8な文字列をtr()が受け付けるようにする。 QTextCodec</qtextcodec></qstring></iostream>…

Qt 及び Qt Eclipse Integrationのインストール

Kubuntu上でGUIプログラミングを行うのにQt4を利用しようと思ったので、必要な物のインストール及び設定メモ。 まずAdeptとかを使って公式のリポジトリからQt4関係の物を一式インストールしようと思ったけども、uicとかが何故か古いので本家のtrolltechから…