Qt

Qt 5.11 での Wayland 対応の改善

Published Tuesday October 30th, 2018 | Leave a comment
Posted in Qt | Tags: ,

この記事は The Qt Blog の What’s new with the Wayland platform plugin in Qt 5.11? を翻訳したものです。 執筆: Johan Helsing, 2018年05月29日 Wayland は最近の Linux で使われているディスプレイサーバーのプロトコルで、Qt Wayland プラットフォームプラグインにより、Qt のアプリケーションは Wayland のディスプレイサーバー(コンポジタ)上で動作可能になります。 Qt 5.11 では、バグの修正以外に加えてとくにデスクトップユーザーに向けた様々な改善がなされました。 合成キー入力の対応 キー入力の合成は長らく未対応でしたが、ようやく対応ができました。これにより、以下のような入力に複数のキー入力を必要とする文字の入力が可能になりました。 ¨ と A で “ä” を入力 Compose キー、S、S で “ß” を入力 オフィシャルバイナリに含まれるように Qt 5.11 と Qt Creator 4.7 以降、Qt Wayland はオフィシャルのインストーラーでのインストールが可能になりました(これまでは自分でビルドをする必要がありました)。 […]

Read More

macOS での Valkan for Qt

Published Tuesday October 30th, 2018 | Leave a comment
Posted in Qt | Tags: , ,

この記事は The Qt Blog の Vulkan for Qt on macOS を翻訳したものaです。 執筆: Morten Johan Sørvig, 2018年05月30日 qtbase の dev ブランチ(Qt 5.12 になる予定)に Vulkan サポートが追加されました。こういった対応は、控えめに言っても多大な工数がかかるものですが、MoltenVK プロジェクトとこれまで Qt に対してなされた様々な作業により、スムーズに対応を行うことができました。ということで詳細を見てみましょう。 背景 昨年、Laszlo が Windows と Linux、Android の Qt の Vulkan 対応 という記事を書きました。これにより、QSurface::VulkanSurface に加え、クロスプラットフォームの QVulkanInstance や QVulkanWindow といったクラスが追加されました。 その後、いまから数か月前に、MoltenVK という Vulkan と Metal の変換ライブラリがオープンソース化されました。これを Qt として対応する というバグレポートが作成され、これには QWindow が内部で使用している […]

Read More

コルーチンと QML で遊んでみた

Published Tuesday October 30th, 2018 | Leave a comment
Posted in Qt | Tags:

この記事は The Qt Blog の Playing with coroutines and QML を翻訳したものです。 執筆: Jesús Fernández, 2018年05月29日 (別名 コルーチンと Qt で遊んでみた パート2) 5747a7530206ac410b6bd7c1b8490d7d389ad3a5 により JavaScript Generators のサポートが QML に追加されました。これによって、前回の記事のフィボナッチ数列もジェネレーターで書けるようになりました。 サンプルコード: import QtQuick 2.11 import QtQuick.Window 2.11 import QtQuick.Controls 2.2 Window { property var fibonacci: function* () { yield “0: 0” yield “1: 1” var f0 = 1, […]

Read More

Qt での開発の最前線:いま使うべき10のツール

Published Sunday October 28th, 2018 | Leave a comment
Posted in Qt | Tags: , , , , ,

この記事は The Qt Blog の Modern Qt Development: The Top 10 Tools You Should Be Using を翻訳したものです。 執筆: Matthias Kalle Dalheimer, 2018年10月12日 仕事をする上で、正しいツールを使うことがどうして重要なのでしょう?効率と成果というのがすぐに思い浮かぶ2つの理由です。工事現場で働く人たちは釘の刺さるような靴を履きません。ソフトウェア開発者である我々は、どうしてバグを発見したりコードの最適化をする際にマニュアルな方法で行うのでしょう?どう考えても非効率でイライラするし、成果も芳しくないですよね? 新しいツールを学ぶのは時間のかかる作業です。では、自分の時間をどこに割くかはどう決めるべきでしょう?私たち KDAB はそれに値する Qt 関連の開発ツールをこの記事で共有したいと思います。私たちはよくこういったツールを使って厄介なバグの所在を突き止めたり修正したり、難解な最適化の問題を解決したりしています。Qt での開発の最前線にいるみなさんは、既にこういったツールに馴染みがあるかもしれませんが、様々なスキルレベルのみなさんの中にはまだ試したことのないツールもあるかもしれません。 GammaRay – Qt の構造に基づいた内部調査用デバッガ Qt の内部の構造のデバッグでイライラしているみなさんに強くおすすめしたいツールです。GammaRay は QtQuick シーングラフやモデル/ビューの構造、QTextDocument、シグナル/スロット、フォーカスのハンドリング、GPU のテクスチャ、QWidgets、ステートマシンといった Qt の主要なコンポーネントに対応し、Qt 内部のこういった情報を可視化するだけではなく、実行時に内部の値の変更ができてしまうツールです。アプリケーションを起動してのデバッグや、起動中のアプリケーションへのアタッチ(ローカルでもリモートでも)が可能となっています。 https://www.kdab.com/development-resources/qt-tools/gammaray/ https://www.kdab.com/gammaray-2-9-0-release/ Clazy – Qt のセマンティクスに基づいたコンパイラプラグイン これはすべての Qt ユーザーの引き出しに入れておきたいツールです。clazy を clang に追加することで、必要のないメモリの確保や API […]

Read More

Qt Design Studio 1.0 をリリースしました

Published Sunday October 28th, 2018 | Leave a comment
Posted in Qt Design Studio | Tags: ,

この記事は The Qt Blog の Qt Design Studio 1.0 Released を翻訳したものです。 執筆: Petref Saraci, 2018年10月25日 デザイナーとディベロッパーの効率的なワークフローによるコラボレーションが製品のイノベーションを加速させ、最終的には最高のユーザー体験の提供につながると強く信じています。このため、Qt Design Studio 1.0 のリリースを本日発表できることを心からうれしく思います! Qt Design Studio は UI のデザインと開発のための環境で、これによりデザイナーとディベロッパーが迅速にプロトタイプを作成し、複雑な、様々なサイズのスクリーンに対応可能な UI の開発が可能になります。 Qt Design Studio はデザイナーにもディベロッパーにもお使いいただけるツールで、両者のコラボレーションが驚くほどシンプルで合理的になります。デザイナーはグラフィカルなビューで作業をし、ディベロッパーは QML のソースコードを扱うことが可能です。このワークフローにより、デザイナーが作業中の Photoshop のデザインを実際のデバイスで動かすなんてことも数分で可能になります。ここでは、Photoshop のデザインをあげましたが、その他のデザインツールにも将来対応する予定です。 Qt Design Studio と Qt/QML による強力で効率的なワークフロー 7月のテックプレビューのリリース 以来、既存の機能の仕上げと新機能の追加を行いました。というわけで、各機能を紹介したいと思います。 Qt Photoshop Bridge – Photoshop のデザインのインポートが可能 Photoshop から、再利用可能なコンポーネントを直接生成することができます 特定の QML […]

Read More

Qt におけるシリアル化

Published Sunday October 28th, 2018 | Leave a comment
Posted in Qt for Automation | Tags: , , , , ,

この記事は The Qt Blog の Serialization in and with Qt を翻訳したものです。 執筆: Maurice Kalinowski, 2018年05月31日 この連載の最初の記事 で、メッセージの構築と組み合わせ、テレメトリセンサーでのオーバーヘッドの削減を紹介しました。 今回は、メッセージのペイロード(本体)とその最適化について紹介します。 Qt にはオブジェクトのシリアル化の方法がいくつかあります。パート1では、JSON を利用しました。この場合、すべてのセンサーの情報は QJsonObject に収められ、QJsonDocument が情報を QByteArray に変換する役を担いました。 QJsonObject jobject; jobject[“SensorID”] = m_id; jobject[“AmbientTemperature”] = m_ambientTemperature; jobject[“ObjectTemperature”] = m_objectTemperature; jobject[“AccelerometerX”] = m_accelerometerX; jobject[“AccelerometerY”] = m_accelerometerY; jobject[“AccelerometerZ”] = m_accelerometerZ; jobject[“Altitude”] = m_altitude; jobject[“Light”] = m_light; jobject[“Humidity”] = m_humidity; […]

Read More

Python バインディングを書いてみよう

Published Sunday October 28th, 2018 | Leave a comment
Posted in Qt for Python | Tags: ,

この記事は The Qt Blog の Write your own Python bindings を翻訳したものです。 執筆: Alexandru, 2018年05月31日 こんにちは。 前回の記事では Qt ライブラリの Python バインディングを生成する方法について簡単に紹介しました。 今回は、自分のプロジェクトでバインディングを作る方法をちら見せしたいと思います。 Qt for Python には Shiboken というバインディング生成ツールが含まれることになりました。 以下の説明を読んでいただくことで、簡単な C++ のライブラリから Python バインディングが生成する方法を理解することができるでしょう。みなさんがお持ちのカスタムライブラリも、この手法でバインディング化していただけたらいいなと思っています。 Qt 関連の様々なプロジェクト同様、Shiboken に対するコントリビューションも大歓迎です。みんなの幸せにつながる改善をお待ちしております。 ライブラリのサンプル 今回の記事では、あまり中身のない Universe と呼ばれるカスタムライブラリを使用します。このライブラリは Icecream と Truck という2つのクラスを提供します。 アイスクリームには様々な味があります。トラックは近所の子供たちにアイスクリームを配達するための乗り物です。とっても簡単ですね? このクラスを Python から使いたいわけです。例えば、新しい味のアイスクリームを発明したり、配達が問題なく完了したかを確認したいと思います。 というわけで、これから Icecream と Truck の Python バインディングを作って、自分の Python […]

Read More

Qt 5.9.7 をリリースしました

Published Wednesday October 24th, 2018 | Leave a comment
Posted in Qt | Tags: ,

この記事は The Qt Blog の Qt 5.9.7 Released を翻訳したものです。 執筆: Jani Heikkinen, 2018年10月23日 本日 Qt 5.9.7 をリリース致しました。パッチリリースである Qt 5.9.7 には新機能の追加はありませんが、重要なバグフィックスや改善がなされています。 Qt 5.9.6 以降、Qt 5.9.7 では およそ 60 のバグフィックス が為されています。全体では180の変更が行われました。重要は変更の詳細は、Qt 5.9.7 の Change File を参照してください。 Qt 5.9.7 はオンラインインストーラーに付属のメンテナンスツールを利用してアップデートが可能です。新規にインストールする際は、Qt Account ポータル もしくは qt.io のダウンロードページ より入手してください。オフラインパッケージも、商用版は Qt Account ポータル より、オープンソース版は qt.io のダウンロードページ より入手可能です。 以前の記事でお伝えした通り、Qt 5.9 ではパッチリリースを今後も継続する予定ですが、ペースは緩やかになります。

Read More

Qt 5.12 LTS ベータ版リリース

Published Wednesday October 10th, 2018 | Leave a comment
Posted in Qt | Tags: , ,

この記事は The Qt Blog の Qt 5.12 LTS Beta Released を翻訳したものです。 執筆: Tuukka Turunen, 2018年10月05日 本日 Qt 5.12 LTS のベータ版をリリースいたしました。Qt 5.12 LTS は堅牢な製品開発のベースとして期待されるバージョンで、3年間のサポート期間中にいくつものパッチレベルのアップデートが行われる予定です。今後開発が始まるプロジェクトだけではなく、現在進行中のプロジェクトに関しても、まもなくリリースされる Qt 5.12 LTS へのアップデートを推奨します。オンラインインストーラー経由でのダウンロードにも対応しているため、今回の最初のベータ版を今すぐ試していただく事が可能です。 ここで紹介すべき事はたくさんありますが、まずは Qt 5.12 LTS のハイライトを紹介したいと思います。新機能の概要の一覧は Qt 5.12 の wiki ページ をご覧ください。また、様々な新機能を紹介するためのブログ記事や、ウェブセミナーも予定しています。 長期サポート(LTS) Qt 5.12 LTS は長期サポートのリリースとなります。今後3年間サポートが行われ、その後も延長サポートの購入が可能となります。LTS ということで、バグフィックスやパフォーマンスの改善、セキュリティホールの修正などを含むパッチリリースが今後継続的に行われます。現時点で新しいプロジェクトを立ち上げる際には Qt 5.12 LTS のプレリリース版をお使いいただくことも可能です。既存のプロジェクトについても、5.12 LTS の正式リリースが行われた際にはそちらへの移行を推奨します。 Qt 5.9 LTS は 2018年2月に […]

Read More

コルーチンと Qt で遊んでみた

Published Saturday September 22nd, 2018 | Leave a comment
Posted in Qt | Tags:

この記事は The Qt Blog の Playing with coroutines and Qt を翻訳したものです。 執筆: Jesús Fernández, 2018年05月29日 みなさん、こんにちは! 最近 C++ でのコルーチンの状況が気になって、いくつかの実装を調べていました。そして これ で実験することにしました。 これはシンプルで簡単に使え、Linux と Windows で動作します。 当面の目標は、シグナルが来るのを待ったり、QCoreApplication::processEvents を呼んだり、QEventLoop をスタック上に作るようなことをせずとも非同期で動くコードを探るということです。 最初のアプローチは、カスタムのイベントディスパッチャーの中の processEvent 関数をコルーチンに変換し、yield を使うことでした。いくつか失敗をして、この方法はやめることにしました。 次の取り組みは、スロットをコルーチンにすることでした。 QTimer::singleShot(0, std::bind(&coroutine::resume, coroutine::create([]() { … }); このラムダ関数の中で、CPU は yield まで処理を実行し、アプリケーションのイベントループに飛びます。 実際のコードはこんな感じです。 #include “coroutine.h” #include <QtCore> #include <QtWidgets> int main(int argc, char **argv) […]

Read More
Get started today with Qt Download now