カンテラの光の下で

dNaga392's memorandom

【Qt】ウィジェットのスクリーンショット

メインウィンドウをスクリーンショットする メインウィンドウのスクリーンショットを撮る場合、 QPixmap::grabWidget を利用する。 // メインウィンドウのスクリーンショット pixmap = QPixmap::grabWidget( this ); // クリップボードにビットマップをコピ…

【Qt】Sleep()の実装例

QtによるSleepメソッド実装方法を記します(ほぼ参考資料の転載です)。 Sleep は指定時間の間、処理の実行を中断するメソッドです。 実装により次の2種類が存在しています。 秒指定 ミリ秒指定 前者には C++標準ライブラリ のSleepメソッドが、 後者には W…

Slack への Hubot 導入はじめ

導入でつまずいたので、記事で残します。 環境とインストールしておくツール windows 10 git (version 2.6.4.windows.1) node.js (v5.2.0) git は必須ではないですが、git bashから構築及び実行をしているため挙げました。 git と node.js については公式配…

【QtTest】 テストプロジェクトでテストデータにコンテナクラス(QList、QMap、...)を使う

Qtはテストプロジェクト向けパッケージでテストデータを受け渡す方法として、 次の方法が提供されている。 QTest::addColumn() メソッド QFETCH マクロ 標準組み込み型およびQtライブラリ提供クラスの多くは、 addColumn メソッドで登録したテストデータを、…

【Qt】View-QStandardItemModel 導入リンク集

ブックマークが溜まってきたので、内容をまとめる前に一度リンクを記事にしました。 まとまりはないので、たどり着いてしまった人は自分の目で確認してくだし。。 http://doc.qt.io/qt-4.8/modelview.html http://www.thedazzlersinc.com/source/2012/06/04/…

QtDesigner の custom widget plugin を作る

参考 %%QTDIR%%/examples/designer/worldtimeclockplugin 構成 ファイル 例(worldtimeclockplugin) ウィジェットクラスファイル worldtimeclock.h worldtimeclock.cpp プラグインクラスファイル worldtimeclockplugin.h worldtimeclockplugin.cpp プロジェク…

【QLibrary】DLL内の関数を呼び出す

今回は関数の定義されたDLLの作成と、DLLの関数の呼び出しについて。 QtライブラリのDLL読み込みクラスは、QLibraryとQPluginLoaderがありますが、 今回は QLibrary を使用して読み込みます。 やりたいことはだいたい以下の感じ。 // アプリケーションと同じ…

【QScrolArea】中身のサイズに応じてスクロールバーを表示する

QScrollArea はスクロールバーを表示するウィジェットです。 スクロールバーは内包するウィジェットのサイズを受けて設定されます。 他のツールでも同様ですが、意味のあるスクロールバーを表示するにはコツがいります。 もし QScrollArea を見て、「これで…

ドイツ語のあれそれ

しばしば調べるドイツ語のTipsです。 接尾辞 -dorf 村 Düsseldorf [地名]デュッセルドルフ(DEU) デュッセル村。付近を流れるデュッセル川に由来 Himmelsdorf [地名]ヒンメルスドルフ(WoT) 天国の村

モバイルフレンドリー についてメモ

Web

先日 Googleが検索結果アルゴリズムを新しくしました。 この変更で、モバイル端末ではモバイルフレンドリーなウェブページが、 優先して表示されるとのことです。 モバイルフレンドリー という単語を聞いたこともなかったので、 調べたことをつらつら書いて…

【Qt】【QListView】QListViewの選択項目の取得

QListViewの選択項目の取得には以下の2通りの方法があります。 フォーカス中のアイテムの取得 選択状態のアイテムの取得 まずはそれぞれの方法を示します。 フォーカス中のアイテムの取得 QStandardItem * item = NULL; // フォーカス中のアイテムのインデッ…

【Qt】【QListView】QListViewの項目の追加

QListView に項目の追加する方法を示します。 まずは、前準備として以下のようにモデルの設定します。 // リストビュー QListView *listView; listView = new QListView(); Q_CHECK_PTR(listView); // 表示モデルを用意 QStandardItemModel * model = new QS…

【VBA】ワークシートを巡回する

VBA

ブックの全てのワークシートは Worksheets で呼ぶことができます。 この複数のワークシートに対して特定の操作をするために、 VBAの繰り返しステートメントの一つ For Each を用います。 For Each ws In Worksheets ' ワークシートの名前をデバッグプリント …

【Name】メタ構文変数

日本で使われるメタ構文変数の名には hoge, piyo, fuga 等が挙げられます。 一方、英語圏では foo, bar といった変数名がよく使われています。 英語圏のメタ構文変数の一つに "xyzzy" があります。 これは、ADVENTという1970年代のゲームにおける呪文が由来…

【Doxygen】Doxygen Tips

コードドキュメントツールの Doxygen がいい感じなので、 利用に際して気にすることを記します。 関数コールツリーの表示 関数コールツリーの表示は Topix "Dot" の "HAVE_DOT" にチェックを入れて、 "CALL_GRAPH", "CALLER_GRAPH" にチェックを入れることで…

【Qt】テキストファイルの行数を取得する

行数の数え上げはQTextStream::readLine()を用います。 以下は実際に読んだ行数を返す例です。 int countLine(QString filePath) { int line_count=0; QFile file(filePath); file.open(QIODevice::ReadOnly); //| QIODevice::Text) QTextStream in(&file); …

【Qt】【QList】リストの中身を取り出す

QListの中の値を取得するにはメソッドat()やオペレーター[]を利用します。 それとは別に、QListの中の値を得て、QListから取り除くきたい。 そんなときはメソッドtakeAt()を用います。 先頭または最後に対して同様の操作をする場合は、 takeFirst(), takeLas…

neobundleを導入する

Vim

neobundleが便利で自宅環境にも導入にしようとしたのですが、 思いがけないところで躓いたのでメモ。 つまずいた箇所は、 Windowsの場合は環境変数にgitのパスを追加する必要がある という箇所。これがないとNeoBundleInstallが失敗します。 しかもエラーメ…

【Qt】【QMessageBox】メッセージボックスからボタンを消す

メッセージボックスからボタンを消すにはメソッドsetStandardButtonsに0を渡してあげます。 QMessageBox m; m.setStandardButtons(0); ただ、クラスを作っても良いならQDialogを基底にQLabelを配置したダイアログを作成するのもありかも。 参考 QMessageBox …

【Vim】【Markdown】VimでMarkdownのシンタックスハイライトを使う

Vim

標準のハイライトでは*.md等のファイルはMarkdownではなく modula2 のものと判断されているらしい。 そのため、以下の記述を.vimrcに加えてあげる autocmd BufNewFile,BufRead *.{md,mdwn,mkd,mkdn,mark*} set filetype=markdown 参考 VimでのMarkdown環境を…

【Qt】【QWidget】ウィジェットの画面を描画する

ウィジェットの画面を他のペイントデバイス(QPaintDeviceの派生クラス)に描画する方法です。 // QPixmapにウィジェットの表示を直接描画する方法 QWidget *w = new QWidget(); // 描画内容の設定 QLabel *lbl = new QLabel("Hello world."); QVBoxLayout *la…

【Git】gitconfigの分割管理[include]

Git

.gitconfig を管理の際にいくつかのファイルに分けたいといった場合があります。 こんなとき役立つのが[include]です。 [include]は指定したpathのファイルを展開し、.gitconfigの記述として扱います。 以下はユーザー情報をエイリアス設定を別ファイルに記…

ディレクトリの呼び方

ディレクトリ、いわゆるフォルダの呼び方について。 ディレクトリの下位のディレクトリはサブディレクトリと呼ぶけど、 上位のディレクトリはなんて呼べば良いのだろうと思い調べました。 結果から言うと「親ディレクトリ」で良いようです。 呼称(日本語) …

【Qt】英国のラウンデルを描画

比率は目測です。以下のメッセージが出るのでそのままは使わないでください QPaintDevice: Cannnot destroy paint device that being painted QPixmap takeRAFRoundel() { // 画像のサイズ int width = 500; int height = 500; QPoint center(width/2,height…

【Qt】【QDirIterator】サブディレクトリを含むファイル検索

QDirIterator でサブディレクトリを含むファイル検索をする。 QDirIterator::IteratorFlags を設定すればok 以下はユーザーのピクチャフォルダのjpeg,pngファイルを検索するやつ // ユーザーのPicturesフォルダパスを取得 QString dirPath = QDesktopService…

【C/C++】typedef

cpp

typedef の末尾にのセミコロン(;)を忘れがちなので書いた。 typedef は変数名や構造体、クラスの別名を定義する。 typedef originName newName; 単なる別名のほか、略称の設定することがよくある。 typedef originName oriName; 他に有名なのはポインタの定…

【Git】 ディレクトリの移動

Git

mvコマンドの前にgitを付けるだけでできるらしい $ git mv <oldfilename> <newfilename> 基本操作 | 逆引きGit | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ</newfilename></oldfilename>

【GPG】【Enigmail】Thunderbirdにおけるメッセージのデジタル署名と暗号化

メッセージのデジタル署名と暗号化のメモです。 Enigmail は、バージョン 1.7.2 (20140829-0917) Gpg4win 2.2.3 (Released: 2014-09-04) GnuPG 2.0.26 Kleopatra 2.2.0-git945878c GPA 0.9.6 GpgOL 1.2.1 GpgEX 1.0.1 Claws Mail 3.9.1 Kompendium (de) 3.0.…

【Git】git log で変更・追加されたファイルを表示

Git

git log で変更者、変更日時等の変更履歴が表示されますが、変更されたファイル名を表示するには --stat, --numstat, --name-status, --name-only などで知ることができます。 git log で変更・追加されたファイルを表示する - yuumi3のお仕事日記

【Qt】【QProgressBar】プログレスバーをステータスバーに表示【QStatusbar】

プログレスバーを生成し以下の3ステップを踏む 処理前にステータスバーへ追加 処理中に値を設定 処理後にステータスバーからの除去 QProgressBar bar; statusbar->addWidget( &bar ); bar.setMinimum( 0 ); bar.setMaximum( 100 ); for ( int i = 0; i < 100…