カテゴリー : Go言語

SOY CMSマニュアルページ作成中
SOY CMS、SOY ShopとSOY Appの操作に関する質問を下記のページで受け付けています。

SOY CMS/Shopで標準機能だけでは実装が難しい時はお気軽にご相談下さい。

SOY CMSの開発秘話を投稿しました。→ SOY CMSの開発秘話
ブログ内検索
 

Go言語とQtで計算フォームを作成してみる

Go言語とQtを使って、下記のような計算フォームを作成してみる。 package main import ( "os" "strconv" "github.com/therecipe/qt/widgets" ) //packageスコープ内に変数を定義しておくと、mainの中、外でも変数を使うことができる var jikyuuInput *widgets.QLineEdit var jikanInput *widgets.QLineEdit var ...

Read More…

 

Go言語でQTのQLabelとQLineEditを組み合わせてみる

QLabelとQLineEditを組み合わせてみる。 下記のコードを入力する。 package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Args), os.Args) window := widgets.NewQMainWindow(nil, 0) window.SetMin...

Read More…

 

Go言語でQtのQGroupBoxとQGridLayoutを組み合わせたサンプル

QtのQGroupBoxとQtのQGridLayoutを使って、下記のような画面を作成してみる。 Go言語でQtのQGroupBoxを使ってみる Go言語でQtでQGridLayoutを使ってみる package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Args), os.Ar...

Read More…

 

Go言語でQtのQLineEditを使ってみる

Go言語でQtのQLabelを使ってみるに引き続き、 QtのQLineEditを使って、入力フォームを作成してみる。 QLineEdit Class | Qt Widgets 5.11 package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Args), os.Args) wi...

Read More…

 

Go言語でQtのQLabelを使ってみる

QLabelを使って、時間という言葉を表示してみる。 Go言語でQtのQBoxLayoutを使ってみる QLabel Class | Qt Widgets 5.11 下記のコードを入力する。 package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Args), os.Args) ...

Read More…

 

Go言語の構造体2

前回のパッケージの関数とメソッド周りに引き続き、Go言語の構造体周りを見ていく。 Go言語のパッケージの関数とメソッドについて Qtのコードを見ていると、NewQMAinWIndowやらSetLayoutといったNew~、Set~という記述をよく見かける。これを理解するためには、構造体の仕組みをおさらいした方がよさそうなので、もう一度構造体について詳しくみていくことにする。 Go言語でQtのQGroupBoxを使ってみる 構造体は、一つの変数にどのような値のセットをもつか厳格に決...

Read More…

 

Go言語のパッケージの関数とメソッドについて

Go言語のパッケージについてもう一度みていく。 Go言語でpackage Go言語で構造体のメソッド dir ├── main.go └── pac └── pac.go 上記のようにpacパッケージを作成し、nameとreadingフィールドを持ったPerson構造体を作成する。 この構造体に関連した関数を作成してみる。 pac/pac.go package pac//Person構造体を定義する type Person struct { name...

Read More…

 

Go言語でQtのQGroupBoxを使ってみる

Go言語でQtのQGroupBoxを使って、QFormLayoutとQGridLayoutを組み合わせた下記のような図を作ってみる。 QFormLayoutについては下記の記事に記載している。 Go言語でQtのQFormLayoutを使ってみる QGridLayoutについては下記の記事に記載している。 Go言語でQtでQGridLayoutを使ってみる QGroupBoxというのは、各レイアウトをグループ化出来るようになり、 一つのWindow内で複数のレイアウトを配置...

Read More…

 

Go言語でQtでQGridLayoutを使ってみる

Go言語でQtのQFormLayoutを使ってみるに引き続き、 Go言語で5つのボタンを表示するQGridLayoutを作ってみる。 Qtのレイアウトについては下記の記事に記載してある。 Qtのレイアウトについて package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Arg...

Read More…

 

Go言語でQtのQFormLayoutを使ってみる

Go言語でQtのQBoxLayoutを使ってみるに引き続き、 Go言語でQtのQFormLayoutを使ってみる。 Qtのレイアウトについては下記の記事に記載してある。 Qtのレイアウトについて QFormLayoutは、下記の図のようにQLabelとQLineEditのようなラベルと入力フォームの関係を簡単に構築出来るレイアウトである。 package main import ( "os" "github.com/therecipe/qt/widgets...

Read More…

 

Go言語でQtのQBoxLayoutを使ってみる

Go言語でQtのQMainWindowを使ってみるに引き続き、 今回はGo言語でQtのQBoxLayoutを使ってみる。 QBoxLayout Class | Qt Widgets 5.11 Qtのレイアウトについては下記の記事に記載してある。 Qtのレイアウトについて package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widget...

Read More…

 

Qtのレイアウトについて

Qtのレイアウトは、主に3つある。 QBOXLayout、QGridLayout、QFormLayoutである。 QBOXLayoutには、QHBOXLayoutとQVBOXLayoutの2つがある。 QHBOXLayoutは、下記の図のようにウィジェットを水平に整列させる。 Layout Management | Qt Widgets 5.11より抜粋 QVBOXLayoutは、下記の図のようにウィジェットを垂直に整列させる。 QGridLayoutは、グリッド...

Read More…

 

Go言語でQtのQMainWindowを使ってみる

Qtには、様々なクラス(部品のようなイメージ)がある。 今回はメインウィンドウ(QMainWindow)のフレームワークを作成してみる。 Qtのメインウィンドウのフレームワークは、下記のような構造になっている。 QMainWindow Class | Qt Widgets 5.11より抜粋 今回は、赤枠の部分(枠の内側は空)を作成してみる。 実際のコードを書く前にGo言語で開発環境の構築の記事を載せておく。 Go言語でQtを扱ってみる on Ubuntu Go言語で...

Read More…

 

Go言語でQtを扱ってみる on Windows

Go言語でQtを扱ってみる on UbuntuでUbuntuでGo言語とQtの開発環境を用意した。 続いて、Windows10でもGo言語とQtの開発環境を用意してみる。 環境 ASUS TransBook T304U OS : Windows10 64bit Go言語:1.11 linux/amd64 Qt:5.11.1 端末はgit bashを利用しているので、新規でMSYS2をインストールせず、git bashを使用する方向で話を進めます。 git bashは下記の記事...

Read More…

 

Go言語でQtを扱ってみる on Ubuntu

Go言語はC言語のようなコンパイルとPython等のLL言語の両方の実行方法を持ちつつ、 言語の仕様を削ぎ落として学習コストを下げつつ実行の高速化を保ち、 更にはクロスコンパイルで一つのコードで様々なOSをサポートする。 シンプルな故に開発の支援ツールも充実している という特徴を持つ言語だが、 デスクトップアプリ(GUI)の開発に弱いというイメージがある。 敢えて弱くしているように見えるので以後は弱点とは言わないが、 洗礼された言語を使っっているとやはりGUIアプリのコードを書...

Read More…

 

Go言語とSQLiteでプリペアドステートメント

Go言語でINSERT文を書く時、直接user_idやpriceなどの変数を構文中に入れるとデータを消去されたり改変される危険性がある。 これをSQLインジェクションと呼ぶ。 SQLインジェクション - Wikipedia SQLインジェクションを阻止するための方法にプリペアドステートメントがある。 例として、下記のようなコードを記載する. package main import ( "database/sql" "log" _ "github.com/m...

Read More…

 

Go言語とSQLiteでトランザクション

Go言語とSQLiteで下記のコードをトランザクションしてみる。 トランザクションとは、分割不可な一連の処理を意味する。 今回は、user_id=1のpriceから1000円を引き、user_id=2のpriceに1000円たすという処理を行うが、この時、途中でエラーが起こった場合は、どの処理もされないようにしたい。この時にトランザクションの仕組みを利用する。 package main import ( "database/sql" "log" "strconv" ...

Read More…

 

Go言語でExcelからデータを取得する。

Go言語でExcelファイルからデータを取得する。 まず、test.xlsxのExcelファイルを作成し、データを入れておく。下記のコードを書いてみる。 package main import ( "fmt" "log" "github.com/tealeg/xlsx" ) func main() { file, err := xlsx.OpenFile("test.xlsx") if err != nil { log.Fatal(err) }...

Read More…

 

Go言語でExcel形式のファイルを作成

Go言語でExcel形式のファイルにデータを打ち込んでみる。 最初に端末にgo get github.com/tealeg/xlsxでExcelをGo言語で作成するためのライブラリを取得しておく。 GitHub - tealeg/xlsx: Google Go (golang) library for reading and writing XLSX files. 次に下記のコードを入力する。 package main import ( "log" "github....

Read More…

 

Go言語とSQLite3でデータを取得する

前回の記事、Go言語とSQLでランダムの顧客10人の注文を10000件登録してみるで作成したtableから10件のデータを取得してみる。 package main import ( "database/sql" "fmt" "log" _ "github.com/mattn/go-sqlite3" ) func main() { db, err := sql.Open("sqlite3", "sample.db") if err != nil { ...

Read More…