クロスプラットフォームライブラリとAPI
Qt Creator IDEと生産性向上ツール
UI compositionのためのUIデザインツール
Qtプロジェクト向け
モバイルアプリのデジタル広告
受託開発、トレーニング、サポート等
組み込み向けユーセージ分析
Qtは、UIデザインやソフトウェア開発から品質保証、展開に至るまで、製品開発ライフサイクル全体で生産性を向上させます。あなたのニーズに最も適したソリューションを見つけてください。
最新のリソースを入手し、今後のイベントを確認しましょう。
理想的な学習リソースを見つけたり、コミュニティと交流したりして、Qtのスキルを向上させましょう。
初心者であろうとベテランのQtプロであろうと、成功するために必要なサポートと助けがすべて揃っています。
5月 30, 2011 by 鈴木 佑 | Comments
この記事は Qt Blog の "Table View with Qt Quick” を翻訳したものです。
執筆: Jens Bache-Wiig 2011年5月26日
Qt Quick をデスクトップで使われている場合には、既に ListView の限界を感じているかもしれません。ListView はフリックで操作できるアイテムの一覧を表示するための便利な機能です。しかし、ほとんどのデスクトップアプリケーションでは、プレイリストやアルバムの一覧の表示などのように現在できること以上のことが要求されるでしょう。これが Qt Quick Desktop Components の大きな制限だということを痛感したので、こういう機能が追加されたらいいなぁというものを ListView の上に作ってみました。
そしてその成果が TableView です。以下のような感じになります。
動作しているところは こちらの動画 で見ることができます。Mac、Windows、KDE と、他のプラットフォームでのスクリーンショットも撮ってみました。マックを常用している方は、テーブルのヘッダがスクロールバーの上部にまできちんと表示されていることに気づくかもしれません。
この TableView は ListModel や XmlListModel のような Qt Quick でサポートされている既存のモデルを使用して動かせるように設計されています。しかし、1次元の ListModel にはカラムの概念が無いため、カラムとプロパティのマッピングが必要です。このため、このビューに使用するモデルは以下のようになります。
ListModel {
id: dataModel
ListElement { title:"Image title"; credit:"some author"; source:"http:/..." }
ListElement { title:"Another title"; credit:"some author"; source:"http:/..." }
}
それからテーブルビューを作成する方法です。
TableView {
model: dataModel
TableColumn {
property: "title"
caption: "Title"
width: 120
}
TableColumn {
property: "credit"
caption: "Credit"
width: 120
}
TableColumn {
property: "source"
caption: "Image source"
width: 200
}
}
順序と幅のプロパティはビューの初期設定に過ぎないことを注意してください。ユーザーは自由にカラムのサイズを変更したり、カラムの順番を変更することができます。一見マッピングは1カラムにつき1つに制限されているように見えます。しかし、ListElement をネストさせることで1つのアイテムにつき、1つ以上のプロパティを使用することができるようになっています。
ListElement { firstColumn: ListElement { description: "Bananas"; color: "yellow" } }
デフォルトでは TableView はそれぞれのアイテムのテキストを表示するような簡単なデリゲートを提供します。
しかし、Qt Quick の本当に素晴らしいところは簡単にこれをカスタマイズできるところです。これは rowDelegate、itemDelegate、headerDelegate を上書きすることで実現できます。例えば、簡単な編集可能なアイテム表示にしたい場合にはこんな感じでできるでしょう。
itemDelegate:
TextInput {
text: itemValue
onAccepted: model.setProperty(rowIndex, itemProperty, text)
}
まだこれで全てに対応できるわけではありません。既知の問題として、キーボードでのナビゲーションが制限されていることと、複数選択があります。普通の Qt 4.7 の上でこれら以外には特に問題はなく動作しますので、以下のリポジトリをクローンして今日からでも遊んでみてください。
http://qt.gitorious.org/qt-components/desktop
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
9 27, 2024
本稿は「QtGraphs」の抄訳です。 このブログ記事では、データを2Dおよび3Dグラフで視覚化するQtの最新モジュールを紹介します。Qt..
9 17, 2024
本稿は「Vector Graphics in Qt 6.8」の抄訳です。 最近の Qt リリースノートでは、2..
9 12, 2024
QtのVisual Studio Code拡張機能バージョン1.0のリリースを発表いたします。 本稿は「New Qt Extension for..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.