Qt Tips


Qt Code

QtCreatorやQtアプリケーションで日本語入力する

sudo apt-get install fcitx-libs-qt5
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/内の/libfcitxplatforminputcontextplugin.so
/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
/[version]/gcc_64/plugins/platforminputcontexts/にそれぞれコピー

デバッグログに出力

qDebug() << "Hello World";
 >>Hello World
int num = 50;
qDebug() << "Number is" << num;
 >>Number is 50
基本的な変数であれば直接表示してくれる

カーソル位置に対象のウィジェットがあるか判定する関数

bool MainWindow::isTarget(QWidget *wid)
{
  if (!wid->isVisible())
    return false;
  return wid->rect().contains(wid->mapFromGlobal(QCursor::pos()));
}
EventFilterの引数にある*QObjectでは マウスカーソル位置のウィジェットを取得するので
対象のウィジェット内にカーソルがあるか判定したい時はこっち

connect()やQTimer::singleShot()で変数を渡す

QString str = "OK";
QTimer::singleShot(3000,[=](){ qDebug() << str; });
 After 3sec >>OK 
connect(pushButton,&QPushButton::clicked,[=](){
  qDebug() << str;
});
 pushButton_clicked >>OK
connectで使う場合はSIGNAL()を使用しないので注意

QMenuの表示と選択された項目の取得

QMenu menu;
menu.addAction("Hello");
menu.addAction("world");
QAction *copyAct = menu.exec(QCursor::pos());
if (copyAct)
  qDebug() << copyAct->text();
 Select First >>Hello

QWebEngineViewでAmazonVideoを再生する方法

大前提としてh264を再生できる事をチェック
その上で使用中のQtWebEngineが使っているChromiumのバージョンを確認
それと同じバージョンのChromeから
libwidevinecdm.so libwidevinecdmadapter.so
の2つのファイルをQtディレクトリ下/plugins/ppapi/に置く
 デフォルトでは/usr/lib/qt/plugins/ppapi/
ChromiumとWidevineのバージョンを合わせる事が鍵?

QWebEngineViewでh264の動画を再生する方法Old



QWebEngineViewでAdBlockやuBlockの真似事

QWebEngineUrlRequestInterceptorをカスタムクラス化し
QWebEngineProfile::defaultProfile()->setRequestInterceptor(interceptor);

として登録
その上でinerceptorのinterceptRequest(QWebEngineUrlRequestInfo &info)を定義
あとはinfo.block(true)をすればブロックできる

コメント

このブログの人気の投稿

Firefoxで改造アドオンのインストール失敗

base64で文字列化された画像のリサイズ用ツール

PlayOnLinuxでインストールリストが表示されない場合の対処法