読者です 読者をやめる 読者になる 読者になる

サクッとプログラムした気になる (6)

Tips PC Qt

珍しく続いておりますが、割と暇で仕事中にやってるからと言うのは秘密です

やること

  • アートワークをアプリのウィンドウに表示する     ←対応済
    • バグを直す                     ←対応した
  • 現在再生中のトラックタイトルを取得して表示する    ←対応した
  • 再生、停止、戻る、次へコントロール(別にいらないが) ←後回し
  • Twitterに再生中の楽曲をポストする(最終目標)    ←やってみる

QtからTwitter関連の処理をする方法 - Twitter4QML

知る限り一番の近道は@task_jpさんのTwitter4QMLを使うことだと思われます

はりきらないひと: 【一夜漬け】Twitter4QMLを使ってみようか。
艦メモのビルド方法(Windows編) - 理ろぐ

使ってみようとpriをプロジェクトに追加してブログ記事とコードをにらめっこしておりましたが実力不足でついていけないのでTwitterにポストするだけの低機能クラスを作ることにしました。

QtからTwitter関連の処理をする方法 - オーソドックスな方法

3-legged authorization | Twitter Developers
Twitter APIの使い方まとめ

取り敢えずHTTPのPOSTメッセージが出せればなんとなくやった気になれるのかな・・・?

QtWebEngine

Webページをアプリ内で表示

取り敢えずブラウザのウィジェットでWeb表示して内容をPostすればいいんじゃないかと妄想してWebViewについて頑張って調べました。何だかんだ錯綜していて色々な情報が集まるわりに全部うまく行かずで、結論としては

ので、つまるところ VS2013 のコンパイラを入れて切り替えて

#include <QtWebEngineWidgets/QWebEngineView>

{
    QWebEngineView* WebView = new QWebEngineView();
    QUrl url = "https://www.google.co.jp";
    WebView->load(url);
    WebView->show();
}

的な感じで取り敢えず表示は出来た。(本日時点のコードはadd some modifications · moguriso/gawa_sample@4e232cc · GitHub

意味がないことに気づいた

WebViewはViewなので、HTMLの中身に対して何らかいじって表示したりは出来そうですが、HTTPのPOST/GETしたりのネットワーク的な機能は別のクラスだった、と、6/17に書いてて気付きました。悲しい、、、

HTTP Example | Qt Network 5.7

この辺を参照する限り QNetworkAccessManager で出来るの、かなぁ。。。

地味にうざかったこと

gccだと__func__マクロで自動的に関数名に置換してくれるのですがvc(vs2013)だと__func__がなくて全部ビルドエラーになりました。取り敢えず__FUNCTION__は通ったのでそっちにしてますが、何だかな。。。

TODO

  • アートワークをアプリのウィンドウに表示する     ←対応済
    • バグを直す                     ←対応した
  • 現在再生中のトラックタイトルを取得して表示する    ←対応した
  • 再生、停止、戻る、次へコントロール(別にいらないが) ←後回し
  • Twitterに再生中の楽曲をポストする(最終目標)    ←対応中
    • Webページ表示できればなんとかなるんじゃね? ←別の事やってた、、、orz
    • QNetworkAccessManagerでHTTP postについて調べる ←ツギココ
    • twitterとの認証ハンドシェイク
    • twitterに認証してユーザーログイン
    • twitterに投稿(取り敢えずのゴール。ブレイクダウンは現在適当)