実を言うとTab Groupsはもうだめです。

今朝 Firefox を開くと、Tab Groups からの last notify のページが開きました。 記事によると、これまでアドオンとして提供されていたTab Groupsの開発が中止されるとのことでした。 タブグループ機能がFirefox本体から廃止され、その代わりになったのがこ…

【Git】 fatal: not under version control, source=A.txt, destination=B.txt

Git

Gitで表題のようなエラーが出た。 ファイル名をチェックすると、ファイル名の一部が大文字小文字で異なっていた。 これは git を介さずにファイル名を変更したためとのこと[1]。 解決法には以下の2つがある。 元のファイル名に戻す。 ファイル名変更をgitに…

【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…

【Qt】【QButtonGroup】グループすべてのチェックボックスを未選択状態にする【QCheckBox】

QButtonGroup の 制御を一旦解くことで未選択化が可能です。 解除する前後でsetExclusiveメソッドを呼び出す方法は以下のとおり。 // groupStatus is a pointer to QButtonGroup groupStatus->setExclusive(false); groupStatus->checkedButton()->setChecke…

【Word 2010】目次の追加

MS Word2010では、目次の追加は[参考資料]タブからできます。 ギャラリーから目次を作成する 目次の項目を登録したら、目次を作成できます。 目次を挿入する位置 (通常は文書の先頭) をクリックします。 [参考資料] タブの [目次] で [目次] をクリックし、…

【Qt】ローカルファイルの実行

ローカルファイルの実行は QDesktopServices の openUriメソッドを使い実現できます。 //#include <QDesktopServices> //#include <QUrl> //#include <QString> // QString filepath; bool result = QDesktopServices::openUrl(QUrl::fromLocalFile(filepath)); c++ - Howto open html page in</qstring></qurl></qdesktopservices>…

【Qt】【QCheckBox】QCheckBoxの選択範囲の変更

QCheckBox の選択範囲を横幅いっぱいにする方法について。 スタイルシートで背景色を設定すると横幅いっぱいに色が設定されますが、 チェックできる範囲(チェックボックスとテキスト領域)と異なる範囲のため、 選択範囲を変えたいという事情がありました。 …

【QtJP】Qt 勉強会に行ってきました【QToolBox】

Qt勉強会に行ってきました! Qt 勉強会 #18 @Tokyo - Qt 勉強会 | Doorkeeper 勉強会はもくもく会と聞いていたので、 アイテムラベルをグループ化して表示するツールボックスを作ることを目標に臨みました。 夕方に予定があったため、勉強会の時間内に完成さ…

【Qt】【QDateTime】 日時の文字列表示

日時はQDateTimeで扱うことができます。toString関数を使うことで任意の文字列表示ができます。 // 現在の日時を取得 QDateTime dt = QDateTime::currentDateTime(); // QStringの割当用一時変数 QString str; // 以下は time_t tm として対応するものをコメ…

【Qt】【MinGW】Qt4.7.0をインストールする

歴史的経緯によりQt4.7.0の開発環境を作る事になりました。 その時の導入手順をここに記します。 手順としては20分かからないくらいです。 1. qt-win-opensource-4.7.0-mingw.exe を手に入れる。 公式のダウンロードページには最新版が紹介されているので、a…

【Qt】ディレクトリ内のファイルをすべて削除する

H261117 フィルタを追加(システムリンク".",".."を拾っていたため)。 ディレクトリ内のファイルをすべて消すときは、 QDirですべてのファイル情報を取得して、QFile::remove()を使いましょう。 作業用ディレクトリ内の一時ファイルやログを消すときに有効…

【Qt】AppDataのLocalに作業ディレクトリを作る

ガイドラインによると作業用の一時フォルダはAppDataのLocalに置くのがよいとのこと。 以下は、ベンダー名(Vendor)、アプリケーション名(AppName)の階層で作業ディレクトリを作成しています。 // AppData\Local\Vendor\AppName を作業ディレクトリとする // …

【VisualStudio2010】【Qt】uiファイルが更新されないとき

VS用のアドインでQt開発していると、 *.ui を編集しても ui_*.h が更新されない!なんて事があります。 このようなときは、まず他にui_*.hファイルがないか確認してみましょう。 自分の環境ではGeneratedFileディレクトリ内に最新のui_*.hが生成されてい…

【Qt】【QLabel】背景色の設定

ラベルの背景色はQtスタイルシートを設定するのが最良であるとのこと。 参考記事にはパレットでの設定方法も記載されています。 // 色名による指定 QLabel* pLabelR = new QLabel; pLabelR->setStyleSheet("background-color : red;"); // red // 16進RGBに…

【Qt】【QRadioButton】排他的なラジオボタンの配置

QRadioButtonで複数の排他的なラジオボタングループを作りたく 調べているとQVBoxLayoutでグループ化ができるとのこと。 でもでも階層構造にしてもすべて同じグループになっちゃうし、 QButtonGroupはQWidget継承してないしでどうすればいいんだ~? とさら…

【Qt】【QLabel】Set Text and Image

QLabelでは文字列と画像のどちらかしか設定することはできない。 よって、背景画像を設定したラベルを作成するには一工夫が必要。 例えば、画像をスタイルシートで設定することで、背景画像を設定したラベルが作れる。 QLabel* label = new QLabel(); label-…

【GitLab】Automatically close issues using commit messages

Bitbacketのようにコミットメッセージでイシューをクローズ機能欲しいなあ、 とぼやいていたら同僚に方法を教えてもらえました。 https://about.gitlab.com/2013/09/22/gitlab-community-edition-6-dot-1-released/ 'Fixes #1' または 'Closes #1' でコミッ…

【Qt】Text on image

QPainterでテキストを画像に乗せることができるとのこと。 透過画像も対応なので便利そう。 Qt - How to set text on top of QLabel Image mobile - Qt - How to set text on top of QLabel Image - Stack Overflow

【Python】正規表現のmatchとsearch

正規表現を用いた文字列検索には、re.match() と re.search() があります。 この二つには matchは前頭検索、searchは全文検索という違いがあります。 そのため、searchのみでよいのではという提案もされています。 先日参加いたしましたPyConJP2014でも、以…

MinGW インストール方法

minttyを使うため、MinGWをインストールしようと思います。 Win7(x64)で確認しました。 インストール方法について以下の手順で説明します。 1. インストーラーのダウンロード 2. インストーラーの実行 3. 環境変数の設定 1. SourceForge.net からインストー…