- Contents -
QtのGo言語用のwrapライブラリ (github.com/therecipe/qt/)
で、Qt開発環境用意する手順
- MacOSX
- Homebrew
セットアップ
Installガイド
https://github.com/therecipe/qt/wiki/Installation
qt自体のインストール
brew install qt5
環境変数
export QT_HOMEBREW=true
homebrewでqt5をインストールしている場合は、必ずQT_HOMEBREW
の環境変数設定が必要みたいです。
.bashrc
.zshrc
とかに記述しておこう
echo 'export QT_HOMEBREW=true' >> ~/.bashrc
# or
echo 'export QT_HOMEBREW=true' >> ~/.zshrc
github.com/therecipe/qt をダウンロード
go get -u -v github.com/therecipe/qt/cmd/...
qtsetupの実行
qtsetup
qtsetup
の際に以下のERRORが発生する場合
PANI[0000] failed to find QT_DIR (/Users/tyab/Qt5.10.0) error="open /Users/tyab/Qt5.10.0: no such file or directory"
panic: (*logrus.Entry) (0x1400fa0,0xc420017860)
QT_HOMEBREW の設定が抜けている場合に発生します。
PANI[0000] failed to find XCODE_DIR (/Applications/Xcode.app) error="open /Applications/Xcode.app: no such file or directory"
panic: (*logrus.Entry) (0x13f0b00,0xc42008eff0)
xcodeがインストールされていない場合に発生します。
サンプルプロジェクト作ってみよう
main.go
package main
import (
"github.com/therecipe/qt/widgets"
"os"
)
func main() {
app := widgets.NewQApplication(len(os.Args), os.Args)
window := widgets.NewQMainWindow(nil, 0)
window.SetWindowTitle("Hello World Example")
window.SetMinimumSize2(200, 200)
layout := widgets.NewQVBoxLayout()
mainWidget := widgets.NewQWidget(nil, 0)
mainWidget.SetLayout(layout)
label := widgets.NewQLabel2("Hello World", nil, 0)
layout.AddWidget(label, 0, 0)
textEdit := widgets.NewQPlainTextEdit2("", nil)
layout.AddWidget(textEdit, 0, 0)
button := widgets.NewQPushButton2("Message", nil)
layout.AddWidget(button, 0, 0)
button.ConnectClicked(func(checked bool) {
widgets.QMessageBox_Information(
nil,
"",
textEdit.ToPlainText(),
widgets.QMessageBox__Ok,
widgets.QMessageBox__Ok)
})
window.SetCentralWidget(mainWidget)
window.Show()
app.Exec()
}
ビルドして実行
qtdeploy -debug test desktop
おしまい
このビルドって毎回こんなに時間がかかるもんなのかな??
ちょっと、そこら辺改善しないと毎回ソース弄って待たされるのはつらい…。
あと、ライブラリがでかいのか、IDEAでの操作中にコード解析に時間がかかってるみたいでストレスという。
--- 追記 ---
毎回qtdeploy
を叩かなくても、go run
で実行できるみたいですわ。笑
go run main.go
余談
IDEA を久しぶりにUpdateしました!! 2016.3 -> 2017.3
前は、golang のSDK をProject Structureから、SDKsに登録しなくちゃいけなかったんだけれども、
最新の2017.2 あたりのバージョンからは、GOROOTを設定するだけで良くなったんだね!
あと、golangでもposfixによるコード補完ができるようになってる!!
(これ前からだっけか??)