2017年01月
[UWP] Win2Dを使ってみる(2)
適当に落書き帳みたいなのを作ってみた。(適当すぎるので注意w)
続きを読む[Qt] Xcodeのプロジェクトを出力する
ちょっと前にQtでiOSのアプリが作れるってのを知って試してみたが、iOSシミュレータで動かんかったのであきらめていたんだが、qmakeを使うとXcodeのプロジェクトを出力できるとしって試してみた。
Qt CreatorでQtウィジェットアプリケーションを作成する。とりあえず、キットの選択では一通りチェックいれとく。
iOS用のXcodeプロジェクトを作成するには次のように実行する。QtはユーザーホームのQtにインストールされているものとします。
$ ~/Qt/5.6/ios/bin/qmake -spec macx-xcode
Xcodeで開くと警告が出るけど警告アイコンをクリックしてUpdate to recommended settingsを選ぶと

こんなのが出るのでPerform Changesをクリックする。

これでiOSシミュレータや実機で動作する。
[UWP] Win2Dを使ってみる。
UWPのプロジェクトを作る。
ツール - NuGetパッケージマネージャー - ソリューションのNuGetパッケージの管理を選ぶ。

検索文字列を入れるところにwin2dと入力して検索し、Win2D.uwpを選択して、プロジェクトにチェックをいれインストールする。

MainPage.xamlのPageタグに
xmlns:canvas="using:Microsoft.Graphics.Canvas.UI.Xaml"
を追加する。
Gridに
<canvas:CanvasControl Draw="CanvasControl_Draw" ClearColor="CornflowerBlue"/>
を追加する。
DrawイベントがWindowsフォームアプリケーションでのPaintイベントにあたる。
MainPage.xaml.csに
using Windows.UI;
using Microsoft.Graphics.Canvas.UI.Xaml;
を追加、MainPageクラスに
private void CanvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
args.DrawingSession.DrawEllipse(155, 115, 80, 30, Colors.Black, 3);
args.DrawingSession.DrawText("Hello, world!", 100, 100, Colors.Yellow);
}
を追加する。
まー、Win2Dのドキュメントに書いてあるやつだな。楕円とHello, world!が表示される。
[macOS] テーブルビューを使ってみる(View Based)
[macOS] テーブルビューを使ってみる。(1)では、Cell Basedでやったんだが、View Basedでやってみる。
[macOS] テーブルビューを使ってみる。(1)と同じようにやっていく。
違うところは、
ViewControllerクラスにNSTableViewDataSourceプロトコルとNSTableViewDelegateプロトコルを追加する。
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any?
の代わりに
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView?
を実装する。
// 表示するデータをセットしたViewを返す。
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
let cell = tableView.make(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
if let tcol = tableColumn {
if(tcol.identifier == "Name") {
cell.textField?.stringValue = datas[row].name
} else if(tcol.identifier == "Age") {
cell.textField?.stringValue = "\(datas[row].age)"
}
}
return cell
}
TableViewのContent ModeをView Basedにする。
TableViewのdelegateもView Controllerに接続する。
こんなところだ。