asaのブログ

プログラミングの勉強まとめ

C++

入門Qt4プログラミングを読む1

C++

『入門Qt4プログラミング』を終わらせて次の本なり文献なりに移りたいと思います。かといって流し読みしただけでは大事な点を取りこぼしてしまうこともあるのでざっくり役に立つようにまとめていこう思います。 序文ではQtがどのようなライブラリかを解説し…

C++ 多重継承〜仮想関数〜入出力

C++

ようやく環境が整ったので随時やっていきます。とりあえずいつものように基礎練です。 gist2f38154bf249b478740a5710d6cc357d gistb541793e494c83e504fe3a9767ab853a gist838eff0d88a9ed95abb5ee4bb0769035 gist6a4f3701a167734aa16888efabf69a17

Macでの開発環境の構築(C++、Java)

C++

パソコンをWindowsからMacへと切り替えました。周りにユーザーが多かったので買い替えました。愛用のLet's Noteはクリーンインストールして後輩にあげることにしました。ありがとうLet's Note ! そういうわけで今回Macで開発環境をいくつか整えてみましたの…

C++ 代入演算子のオーバーロード~継承とアクセス制御

C++

山口から東京に引越しました。しばらくコードが打てなかったので今最高に楽しいですね。とりあえずC++の基礎練からです。 gistdc307d27006a2105a4ad1b152a468fa8 gist95f4706f5674a5b4005d457d16fa2474 gistfc87fbc7695273d4866be6632c9a720d gist98c6e40…

WebGL チュートリアル1

C++

GLSLを勉強したかったのですが、生憎パソコンがOpenGL3以降に対応していなかったのでずっとレガシーなOpenGLを使用していました。 モダンなOpenGLではこの固定パイプラインを使用しない点で決定的にレガシーなOpenGLと異なっています。 そこで、OpenGLを直接…

C++ コンストラクタのオーバーロード~

C++

いつもどおりの基礎練です。 gist853181548f4ce7d2e82b42c48d7cbbaa gist8d2a206e082cedadb11c3f2d7f48b474 gistd5333f021c9f1eaad921f6019e4f6ba1 gist3ec1bd42e3ccb7a9a4d35619fff3fb84 gist5c872d02192e35696f003fe5ab7413be

C++ フレンド関数~

C++

練習でしばらくコードを打っていました。備忘録代わりに載せておきます。 フレンド関数 gistd8794f1b06807e24be8fea85305f0c7f オブジェクトの配列~参照仮引数 gist0800f76139924a0584a4ba26fad1891f 参照とポインタの比較 gist960dbb758227dc0fdc1ee0f5a9b…

Qtチュートリアル14(レイヤー機能の追加)

C++

作成中のお絵描きソフトにレイヤー機能(テスト)を追加しました。 レイヤーを適当に作成して、レイヤー変更メニューを押すと任意のレイヤーを編集可能になります。 スロット レイヤー用のメニューを作成したらスロットを実装します。スロットは描画領域の関…

Qtチュートリアル13(QColorクラス)

C++

ペイントソフトにアルファ値を追加しました。1~255の範囲でペンの濃度を変化させることができます。 実際に変化させてみると下のようになります。 スロットと関数を見ていきます。ただしスロットと関数の実装をする前に画像のフォーマットをARGBに設定して…

Qtチュートリアル12(画像の反転)

C++

QImageのmirroedを使って画像の左右・上下反転を実装しました。便利なことに違いはなく簡単に実装できるのが良点ですが・・・少し使い勝手が悪いです。 座標を取得してそれぞれx成分、y成分を入れ替えるて実装するのもありな気がしてきました。 スロット それぞ…

Qtチュートリアル11(回転)

C++

この前作ったQtのお絵描きソフトに回転機能を追加しました。 アンドゥの実装も現在進行中で、最近QUndoStackがあることを知ったのでそれを今後使用する予定です。 メニューバーに”Effect”を追加しました。Rotateボタンを押すと回転します。 QActionとスロッ…

Qtチュートリアル10(描画機能)

C++

描画関係のコードを下にまとめました。コメントで大体に書きましたが、1つとてもおもしろい機能があったので紹介します。 updateというメソッドをこれまで何度か使用してきました。これはQWidgetクラスのメソッドで、画面を再描画する必要があるときに呼び出…

Qtチュートリアル9(QPenのカラーと太さの変更)

C++

描画時の線の太さと色を変える機能を見ていきます。これまでなんとなく流れがつかめてきましたが、QtでGUIを構築する際の流れはMVCモデルに沿うと、UIの作成⇒スロットの接続⇒スロットの実装⇒モデルの実装です。 画面的には次のように選択画面があり、 カラー…

Qtチュートリアル8(画像保存)

C++

前回の画像表示と同じく、画像保存もMVCモデルが基になってます。 関連するメソッドは save saveFile saveImage です。またクラスについては QObject QAction QImage QString が関わる点を念頭に置くと分かり良いです。 saveスロット gist8296b075eaaedb077c…

C++ 基礎2(オブジェクトポインタ、構造体、共用体)

C++

C++基礎の2回目です。 オブジェクトポインタ gistee1322c0e80ee6aeabb6b6e9621dd5cb 構造体 gist5e9418ec5c6bfeaf700f1b091ee1bec4 共用体 コード中のコメントは帯×⇒体ですね。 gist41bbff400360d07e53fff9fa1c80e1ec 構造体(コンストラクタ+デストラクタ…

Qt チュートリアル7(画像表示)

C++

前回作成したペイントソフトの機能を見ていきます。先に結論から入ると分かり良いと思いますので示しておきます。 実装の概要 Qtを使ってMVCモデルに沿って画像の読み込みを実装しています。Viewであるopenメソッドは単にユーザーからの入力を受け取るだけで…

Qtチュートリアル6(保存、ペンの太さ、色の実装)

C++

Qtでざっくりと絵を描くアプリを作ります。基本的な機能として保存、開く、ペンの太さ、色の選択を実装しています。今回はQtのサンプルを参考にしています。これにしばらくアンドゥなどの機能やOpenGLを載せていきたいと思います。 少し長くなるので、詳細な…

C++ 基礎1

C++

QtもOpenGLもC++で書いています。そこで、C++の基礎を少しづつ振返っておこうと思います。 参考書はこちらです。 独習C++ 第4版 作者: ハーバート・シルト 出版社/メーカー: 翔泳社 発売日: 2015/11/25 メディア: Kindle版 この商品を含むブログを見る 仮引…

WIN32APIチュートリアル1

C++

Windowsプログラミングを学習します。 インクルードファイル Windowsプログラムを作成する際は必ずwindows.hをインクルードします。またmain関数がなく、代わりにWinMain関数が存在しています。Windows関数はWINAPIにほとんどがまとめられています。WinMain…

Qtチュートリアル5(PaintEvent)

C++

今回は "Basic Drawing Example | Qt Widgets 5.9"を参考にQtによる描画を学習します。PaintEventの復習も兼ねて上のサンプルから要点だけ取り出しました。 コード gist958b6a9410d9842224d0d0e68d2d57dc 内容 サンプルでは描画機能を網羅的に解説するため、…

Qtチュートリアル4(QComboBox)

C++

QComboBoxを使用して性別と血液型を問い合わせるWidgetを作成します。 Widget.h gista70ffbb023958120ef1845a2fc0dc147 Widgetの内容は コンストラクタ スロット×1 コンボボックス×2 ラベル×2 プッシュボタン×1 です。 Widget.cpp gist494e7cefe2b4d1a35…

Qtチュートリアル3(PaintEvent)

C++

QtのPaintEventを学習するために次のようなアナログ時計をQtで作ってみます。 Analog Clock Example | Qt Widgets 5.9 時計は時間の経過とともに針が動きます。時間の経過に従って画面を描画し直す必要があります。こうした画面描画を行う際に使われるのがPa…

Qtチュートリアル2(MainWindow、QMenu)

C++

簡単なテキストボックスを作って、メインウィンドウの使い方とメニューバーの作り方を学習します。 textBox.h QMainWindowの派生クラスとしてtextBoxクラスを定義します。テキストボックスの作りは簡単でセントラルウィジェットにテキストを入力するウィジェ…

Qt5.9の環境構築(MinGW)

C++

前にQtをVisualStudioで環境構築しましたが、MinGWでもできたので忘れないうちにメモしておきます。 必要なもの Qt5.9のオフラインインストーラー インストール Visual Studioの時と違ってすでにVisual Studioがインストールされている必要があるとか、Windo…

Qtチュートリアル1

C++

Qtの簡単な使い方です。 シグナルとスロットについて イベントが発生したらシグナルを送ってそれを処理するというのが基本の流れのようです。ボタンが押されたというシグナルをQtアプリに送ります。するとスロットに登録されたメソッドが実行されます。 QPus…

Qt5.9の環境構築(Visual Studio2017)

C++

C++でGUIを開発するためにQtを導入しました。やや面倒な点があったので覚えているうちにメモしておきます。 筆者の環境 ・Windows7 pro sp1 ・Visual Studio2017 必要なもの ・Windows SDK ・Qt5.9のインストラー Windows SDKのインストール こちらからWindo…

C++チュートリアル1

C++

C++のチュートリアルです。まずはクラスの学習からです。参考書はこちらのKindle版を使用しています。Kindle便利ですね 独習C++ 第4版 作者: ハーバート・シルト 出版社/メーカー: 翔泳社 発売日: 2015/11/25 メディア: Kindle版 この商品を含むブログを見る…