カテゴリー : プログラミング

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の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言語の構造体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の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…

 

JavaScriptのAnalyzerNodeで音に反応して動きを変えてみる

JavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる3までの記事で、 HTML5のWeb Audio APIにあるAnalyzerNodeでマイクから拾った音を周波数データとして取得してみた。 今回はこのデータを使って、 HTML5 Canvasで作成したアニメーションを制御してみる。 はじめに音は関係なく、丸がただ動くだけのアニメーションを作成してみる。 今回は前回のコードのdraw関数のみの修正となるので、 実際に書いたコードもdraw関数のみ...

Read More…

 

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

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

Read More…

 

JavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる3

JavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる2 前回の記事でWeb Audio APIのAnalyzerNodeを使って、マイクで拾った音から周波数データを取得してみた。 実際に取得してみて、ハウリングが発生してという表現が正しいかわからないが、 ファンファンファンという耳が痛くなるような音が鳴り出した。 このハウリング対策として、 マイクから音を拾う際にBiquadFilterというフィルターをかます。 説明の前に実際のコードを書いて...

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…

 

JavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる2

前回のJavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる1で、 数学が弱い生物系出身の自分が無謀ながらコンピュータにおける高速フーリエ変換に触れてしまった。 フーリエ変換と言えば、 世の中を劇的に変えたであろう偉大な数式を挙げろと言われたら必ず出てくるようなもので、 身近でフーリエ変換によって出来たものと言えば、 真っ先に挙がるのが音声データが保存されたCDだろう。 オーケストラのCDをイメージしてみたらしい。 円盤がくるくると周り、 ...

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…

 

JavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる1

JavaScriptのWeb Audio APIで録音してみるでHTML5のAPIを介して、 ブラウザとマイクで音を拾って、wav形式の音声データとして保存してみた。 それを踏まえた上で、 今回はマイクで拾った音を他の処理で使えるように、 音を周波数のデータとして取得してみる。 取得の前に周波数のデータとして取得する為に必要なフーリエ変換について見てみることにする。 といっても生物上がりで数学は得意ではないので、 以後の開発で使える程度の概念程度を自分用のメモとして残す。 ...

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…

 

JavaScriptのWeb Audio APIで録音してみる

先日、 パソコンの前で手を叩いたら、その音をキッカケにして動作するアプリは作れないかな? という意見が挙がった。 というわけで、早速調べてみたところ、 HTML5のAPIでWeb Audio APIをいう仕様を見つけた。 Web Audio API - Web API インターフェイス | MDN というわけで、 早速、上記のURLと下記のURLを参考にして録音アプリを作ってみた。 ユーザーから音声データを取得する  |  Web |  Google Developers...

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…