Go言語 Qt開発環境用意 (MacOSX)

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によるコード補完ができるようになってる!!
(これ前からだっけか??)

コメントを残す