Qt-contributors-summit-2014-QtCS14QtQuick: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Add "cleanup" tag)
(Simplify punctuation)
Line 15: Line 15:
''For types not non-visual QtQml, but not QtQuick specific''
''For types not non-visual QtQml, but not QtQuick specific''


“QtQmlGui” layer is needed, for stuff like Qt.vector3D and colors, which is <span class="caps">GUI</span> related (not viable for QtQml) but should be shared between more than just QtQuick.
"QtQmlGui" layer is needed, for stuff like Qt.vector3D and colors, which is <span class="caps">GUI</span> related (not viable for QtQml) but should be shared between more than just QtQuick.


Prerequisite feature for the <span class="caps">QML</span> discussion – Module dependencies. Something like<br />
Prerequisite feature for the <span class="caps">QML</span> discussion – Module dependencies. Something like<br />
Line 41: Line 41:
</div>
</div>


Then we can have QtQuick using QtQml 2.0 and QtQmlGui 2.0, and “move” items without breaking applications.
Then we can have QtQuick using QtQml 2.0 and QtQmlGui 2.0, and "move" items without breaking applications.


==Some new elements==
==Some new elements==
Line 70: Line 70:
</div>
</div>


<br /> Where threshold is implemented inside the touch delivery and includes intelligent heuristics (like if you touch an area between a tiny button and a giant button, you probably wanted the tiny button because if you wanted the giant button you’d be closer to the center).
<br /> Where threshold is implemented inside the touch delivery and includes intelligent heuristics (like if you touch an area between a tiny button and a giant button, you probably wanted the tiny button because if you wanted the giant button you'd be closer to the center).


But for now, MouseArea margins can do the basic, non-intelligent way. Especially when using singletons:<br />
But for now, MouseArea margins can do the basic, non-intelligent way. Especially when using singletons:<br />

Revision as of 13:25, 23 August 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Notes from QtQuick session

Adaptive UI continued from QtCS 2013

Apparently we have form factor detection now? https://codereview.qt.io/#change,84471
That should help finish enacting the previous adaptable UI plans, but now we need people to use them and provide feedback.

Views NG continued from QtCS 2013

A couple more people partially volunteered. Maybe we can add them together and get 1 full volunteer to start working on this?

QtGui equivalent

For types not non-visual QtQml, but not QtQuick specific

"QtQmlGui" layer is needed, for stuff like Qt.vector3D and colors, which is GUI related (not viable for QtQml) but should be shared between more than just QtQuick.

Prerequisite feature for the QML discussion – Module dependencies. Something like

  1. using QtQml 2.0


in your qmldir, and then

  1. import MyModule 1.0 as Namespace

would also have the effect of

  1. import QtQml 2.0 as Namespace

Then we can have QtQuick using QtQml 2.0 and QtQmlGui 2.0, and "move" items without breaking applications.

Some new elements

Both suggested, and likely will be contributed, by Sean Harmer.

Polar Coordinate Positioner

Positions items around a pole.

MouseRegion

Non-rectangular MouseArea. Probably a new element, as it will be much more complex and it will be overkill for the common case.

Expanded Touch Regions for fat fingers

Touch Special Handling? Threshold around touch events
Long term might want:

  1. Window {
  2.   threshold: isTablet ?  10 : 15 //Plus attached property to fine-tune
  3.   Rectangle {
  4.     MouseArea { anchors.fill: parent }
  5.   }
  6. }


Where threshold is implemented inside the touch delivery and includes intelligent heuristics (like if you touch an area between a tiny button and a giant button, you probably wanted the tiny button because if you wanted the giant button you'd be closer to the center).

But for now, MouseArea margins can do the basic, non-intelligent way. Especially when using singletons:

  1. QtObject {//Singleton, document for now
  2.   property int margins: -15
  3. }


So a per device/form singleton and having MouseArea margins bind to that allows all anchors.fill: parent MouseAreas to extend beyond their parent.

QFontMetrics Functionality

TextContainer element which exposes similar functionality to QFontMetrics. But it exposes it by sizing a non-visual item with set sizes. Like an invisible text item, more efficient and not propagating visibility to its children. Something like:

  1. TextContainer { //+ More font metrics functions, like baseline (but not baseline specifically)
  2.   text: "100%" //Not painted ever, used only for sizing
  3.   font: realTextt.font
  4.   Text {
  5.     id: realText
  6.     text: slider.value
  7.     anchors.centerIn: parent
  8.   }
  9. }


But TextContainer is a terrible name…