QyotoでWindowを表示してみる
ここ数日、気まぐれでQyotoというQtの.NETバインディングを試している。とりあえず空のWindowを表示するまでで苦労したので、メモっておく。
インストールするもの
コード
- Visual Studioでは「Windowsアプリケーション」、Xamarin Studioでは「GUI実行可能ファイル」としてビルドするプロジェクトを用意する。
- ビルド設定でプラットフォームターゲットをx86にする(VisualStudioの場合、デフォルトはAnyなので注意)
- Qyoto/lib/qyoto-qtcore.dll と Qyoto/lib/qyoto-qtgui.dll を参照に追加
- 以下のコードを書く
using System; using QtCore; using QtGui; namespace QyotoSample { class MainClass : QWidget { public MainClass() { WindowTitle = "test"; Show(); } [STAThread] public static int Main (string[] args) { new QApplication(args); new MainClass(); return QApplication.Exec(); } } }
依存ライブラリ
このコードをビルドしただけだと動かないので、以下のDLLをexeと同じディレクトリかPATHの通った場所に置く。どうせ配布時には同梱しないといけないので、プロジェクトに含めてしまってもいいかも。
- Qt/4.8.4/bin
- libgcc_s_dw2-1.dll
- mingwm10.dll
- QtCore4.dll
- QtGui4.dll
- Qyoto/bin
- qyoto-qtcore-native.dll
- qyoto-qtgui-native.dll
- smokebase.dll
- smokeqtcore.dll
- smokeqtgui.dll
当然のことながら、QtNetworkなどのAPIが使いたい場合はそれっぽい名前のDLLを追加する必要あり。