ちょっとだけ軽くするためのTips的なエントリ
【環境】
Xubuntu 12.04 LTS 32-bit
Intel® Core™ i5 CPU M 560 @ 2.67GHz × 4
RAM 2G
1. Power Save Mode を使う
なにが無効になってるのかよくわからないが、結構効果アリ。
おそらくUPLIFT SPICEが発表している楽曲の中で一番知名度の高いであろう曲
オメガリズム(Omega Rhythm)のタブ譜を作りました。
イントロがクリアできればあとはもう全部簡単?な気がする。
ギターソロも落ち着いてやればきっと問題なし。
いわゆるストリングスキッピングを多用した曲ですな。
P.S. 2017/6/21
リンク切れになっていたのを修正しました
(Contents: Gt1, Gt2)
DOWNLOAD ptb format.
サークルでの演奏のためにUPLIFT SPICEから割と有名?な「カノジョ」のタブ譜を作りました。
ギターから見ると全体的に難易度も高くないので一日あればコピーできるんじゃないでしょうかね。
リズムギターはボーカルと兼ねることを前提に作っていますので簡単です。
おかしなところがあったら自分で直してください。
P.S. 9/15
音源的に見るとこの曲にはギターが二本必要なのですが
ライヴ演奏用に一本にまとめたタブ譜も作りました。
もしかするとこっちのほうがしっくりくるかもしれません。
P.S. 2017/6/21
Dropboxの共有リンクの仕様変更の関係でリンク切れになっていたのを修正しました。
(Contents: Gt1, Gt2 - CD ver.)
DOWNLOAD ptb format.
(Contents: Gt1 - LIVE ver.)
DOWNLOAD ptb format.
ファビコン! |
タイトル通り。
メニューにかっこよくファビコンを表示したい!という人のためのメモ。
QIcon MainWindow::getFavicon(QString url)
{
QEventLoop wait;
QPixmap icon;
QImage img;
QUrl request;
request.setUrl(QString("http://favicon.hatena.ne.jp/?url=%1").arg(url));
netReq = new QNetworkRequest(request);
netRep = netMan->get(*netReq);
connect(netMan, SIGNAL(finished(QNetworkReply*)), &wait, SLOT(quit()));
wait.exec();
img = QImage::fromData(netRep->readAll(), "PNG");
icon = QPixmap::fromImage(img.convertToFormat(QImage::Format_RGB32));
return icon;
}
http://favicon.hatena.ne.jp/?url=[URL]
いかんせん非公式なものなのでいつ使えなくなるかはわからない。
でも取得の精度も高いしなくならないといいな。
ちなみに指定するURLにはスキームをちゃんと指定しておかないとまともに動かないので注意。
9、10行目あたりで急に出現するnetRepとかnetReqとかはほとんどQNetwork系の変数。
QNetworkRequestとかQNetworkReplyとか調べればたぶんすぐ分かる、はず。
取得の際にはQEventLoopを用いてこの関数内だけで完結させる。
(排他処理とかがちゃんとしてないのでそこら辺は直したほうがいいかも)
ファビコンのデータが取得できたら上のコードのようにQIconへ変換する。
QImage::convertToFormatにてFormatを指定する際には
QImage::Format_RGB32とQImage::Format_Indexed8が指定できる。
取得されるデータは前者を使うと高品質、後者だと低品質なものになる。
他にも指定するともしかしたらなにかが起きるんだろうけどそれは未検証()
void MainWindow::setMenuIcon(void)
{
ui->actionGoogle->setIconVisibleInMenu(true);
ui->actionGoogle->setIcon(getFavicon("http://www.google.co.jp"));
ui->actionAmazon->setIconVisibleInMenu(true);
ui->actionAmazon->setIcon(getFavicon("http://www.amazon.co.jp"));
ui->actionBing->setIconVisibleInMenu(true);
ui->actionBing->setIcon(getFavicon("http://www.bing.com"));
ui->actionYahoo->setIconVisibleInMenu(true);
ui->actionYahoo->setIcon(getFavicon("http://www.yahoo.co.jp"));
}
で、まあこんな感じでひとつひとつメニューアイテムにアイコンをセットしていく。
actionGoogleとかactionBingとかはご覧の通りどれもQActionの変数。
このときにsetIconVisibleInMenuでちゃんと表示するように設定するのを忘れないこと。
以外にこの存在を知らなくてずっと悩んでる人がQtCentreには結構いたような気がする。
PNG形式のファイルを取得してQIconに変換するっていう処理だけで正直結構ハマった。
加えて、あんまりQIconとかQPixmapの変換に関する詳しい資料がネットにない。
ここらへんはまたいつか記事にしてまとめないといかんね。
今回のソースファイルは全てGitHubにて公開してあります
IzumiSy/qfavicon
Qt4.xでビルドが通っていたソースコードがQt5.1でなぜかビルドエラーを吐くようになった。
調べてみると、Qt5からQUrlのメンバ関数だったaddQueryItemが廃止され
変わりにQUrlQueryというクラスが導入されたとのこと。
ということでそれについてのメモ
QUrl target("http://www.example.com/ex.html");
target.addEncodedQueryItem("AAA", "1234");
target.addEncodedQueryItem("BBB", "5678");
上のコードにおいて変数targetには
http://www.example.com/ex.html?AAA=1234&BBB=5678
といったようなURLが格納される。
デリミタはsetQueryDelimitersを用いて自由に変更できる。
また、QPairでQListコンテナを作りsetQueryItemsでいくつかのクエリを一気に追加することもできる。
このクエリの追加に関して、新たに導入されたのがQUrlQueryとかいうクラス
使い方は実はすごい簡単
QUrl target("http://www.example.com/ex.html");
QUrlQuery q;
q.addQueryItem("AAA", "1234");
q.addQueryItem("BBB", "5678");
target.setQuery(q);
このコードで、上と同じURLが変数targetに格納される。
可読性は上がるんだろうけど、コードそのものは長くなる気がする。
あとはhasQueryItemとか、いくつかのちょっとしたメンバ関数が増えたくらいか。
参考: How do you port QUrl addQueryItem to Qt5's QUrlQuery? - Stack Overflow
RADWIMPSのアルバム「RADWIMPS2 発展途上」に収録されている「そりゃ君がすきだから」のtab譜を作りました。
ボーカルの転調パートのハモりが死ぬほど高いですね・・・
ギターソロは死ぬほど簡単なので誰でもできそうです
P.S 2017/6/21
リンク切れになっていたのを修正しました
(Contents: Vocal, Gt1)
DOWNLOAD ptb format.
今日はUbuntuユーザーにはお馴染みのNotify(?)をQtで表示してみようかと思います。
(この記事で作ったプロジェクトは IzumiSy/libnotify-on-Qtです)
Ubuntuユーザー馴染みのNotifyメッセージ |
知っている方も多いと思いますが、QtにはQSystemTrayIconというクラスがあります。
一応これを使ってもメッセージのバルーンを表示することは出来るのですが、どうも環境に依存しないタイプのポップアップしか出せないらしく、Ubuntuにおいても下のように吹き出し型のものになってしまいます。
QSystemTrayIconをWindowsで用いた例。 Ubuntuにおいても同様のスタイルで表示される。 |
ということで、上のほうのカッコいいやつ(Ubuntu独自のバルーン)をさっそくQtで表示させていきます。
# To support for pkg-config CONFIG += link_pkgconfig PKGCONFIG += libnotify
How to prevent symbol collisions between GTK+ and Qt - Nokia Developer
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <qmainwindow>
// To prevent prevent symbol collisions between GTK+ and Qt
#undef signals
#include <libnotify⁄notify.h>
namespace Ui {
class MainWindow;
}
void MainWindow::on_pushButton_clicked()
{
notify_init("Hello World");
NotifyNotification *hello =
notify_notification_new("Hello world",
"This is an example notification.",
"dialog-information");
notify_notification_show(hello, NULL);
}
やったね!表示されたよ! |
本家
MIDI版
Kraster の Happily N'Ever Before に収録されている Starting(Ne;on ver) のタブ譜を作りました。
個人的には結構好きな曲なんですがYoutubeだとそんなに再生回数は伸びてませんね。
まあいずれにせよ前から楽譜に起こしたいと思っていた曲の一つです。
一応PDFファイルでのダウンロードも用意しておきましたが、どうもPowerTabでPDFの楽譜を出力させると「8」が線と重なって「0」のようにみえてしまうようなので、注意してください。
P.S. 2017/6/21
リンク切れになっていたのを修正しました
(Contents: Vocal, Gt1, Gt2, Bass)
DOWNLOAD ptb format.
DOWNLOAD pdf format.