mirror of
https://github.com/zhuzichu520/FluentUI.git
synced 2024-10-30 15:57:37 +08:00
Compare commits
2 Commits
6a5f9d04a9
...
d222cb640c
Author | SHA1 | Date | |
---|---|---|---|
|
d222cb640c | ||
|
0ab7f811e3 |
@ -207,5 +207,7 @@
|
||||
<file>res/template/src/zh_CN.ts.in</file>
|
||||
<file>res/template/src/README.md.in</file>
|
||||
<file>qml/global/GlobalModel.qml</file>
|
||||
<file>qml/page/T_Sheet.qml</file>
|
||||
<file>qml/page/T_GroupBox.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@ -188,322 +188,332 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="108"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="114"/>
|
||||
<source>PaneItem Disabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="115"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="108"/>
|
||||
<source>GroupBox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="121"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="118"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="124"/>
|
||||
<source>TextBox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="124"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="130"/>
|
||||
<source>TimePicker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="130"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="136"/>
|
||||
<source>DatePicker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="136"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="142"/>
|
||||
<source>CalendarPicker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="142"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="148"/>
|
||||
<source>ColorPicker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="148"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="154"/>
|
||||
<source>ShortcutPicker</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="156"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="162"/>
|
||||
<source>Surface</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="159"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="165"/>
|
||||
<source>InfoBar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="161"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="167"/>
|
||||
<source>An inline message to display app-wide statuschange information.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="166"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="172"/>
|
||||
<source>Progress</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="172"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="178"/>
|
||||
<source>RatingControl</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="178"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="184"/>
|
||||
<source>Badge</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="184"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="190"/>
|
||||
<source>Rectangle</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="190"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="196"/>
|
||||
<source>Clip</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="196"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="202"/>
|
||||
<source>Carousel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="202"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="208"/>
|
||||
<source>Expander</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="208"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="214"/>
|
||||
<source>Watermark</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="216"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="222"/>
|
||||
<source>Layout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="219"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="225"/>
|
||||
<source>StaggeredLayout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="225"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="231"/>
|
||||
<source>SplitLayout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="231"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="237"/>
|
||||
<source>StatusLayout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="239"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="245"/>
|
||||
<source>Popus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="242"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="248"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="249"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="255"/>
|
||||
<source>ComboBox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="263"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="269"/>
|
||||
<source>Tooltip</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="269"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="275"/>
|
||||
<source>Menu</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="277"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="281"/>
|
||||
<source>Sheet</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="289"/>
|
||||
<source>Navigation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="280"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="292"/>
|
||||
<source>Pivot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="282"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="294"/>
|
||||
<source>Presents information from different sources in a tabbed view.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="287"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="299"/>
|
||||
<source>BreadcrumbBar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="293"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="305"/>
|
||||
<source>TabView</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="295"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="307"/>
|
||||
<source>A control that displays a collection of tabs thatcan be used to display several documents.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="300"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="312"/>
|
||||
<source>TreeView</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="306"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="318"/>
|
||||
<source>TableView</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="308"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="320"/>
|
||||
<source>The TableView control provides a flexible way to display a collection of data in rows and columns</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="313"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="325"/>
|
||||
<source>Pagination</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="319"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="331"/>
|
||||
<source>MultiWindow</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="325"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="337"/>
|
||||
<source>FlipView</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="327"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="339"/>
|
||||
<source>Presents a collection of items that the user canflip through, one item at a time.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="334"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="346"/>
|
||||
<source>Theming</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="337"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="349"/>
|
||||
<source>Acrylic</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="343"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="355"/>
|
||||
<source>Theme</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="349"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="361"/>
|
||||
<source>Typography</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="355"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="367"/>
|
||||
<source>Awesome</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="363"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="375"/>
|
||||
<source>Chart</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="366"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="378"/>
|
||||
<source>Bar Chart</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="372"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="384"/>
|
||||
<source>Line Chart</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="378"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="390"/>
|
||||
<source>Pie Chart</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="384"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="396"/>
|
||||
<source>Polar Area Chart</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="390"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="402"/>
|
||||
<source>Bubble Chart</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="396"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="408"/>
|
||||
<source>Scatter Chart</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="402"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="414"/>
|
||||
<source>Radar Chart</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="415"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="427"/>
|
||||
<source>Other</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="418"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="430"/>
|
||||
<source>QRCode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="424"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="436"/>
|
||||
<source>Tour</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="430"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="442"/>
|
||||
<source>Timeline</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="436"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="448"/>
|
||||
<source>Captcha</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="442"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="454"/>
|
||||
<source>Network</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="449"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="461"/>
|
||||
<source>Remote Loader</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="463"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="475"/>
|
||||
<source>Hot Loader</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="469"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="481"/>
|
||||
<source>3D</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="475"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="487"/>
|
||||
<source>Test Crash</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1311,6 +1321,42 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>T_GroupBox</name>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="10"/>
|
||||
<source>GroupBox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="13"/>
|
||||
<source>CheckBox Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="17"/>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="27"/>
|
||||
<source>E-mail</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="18"/>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="28"/>
|
||||
<source>Calendar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="19"/>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="29"/>
|
||||
<source>Contacts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="24"/>
|
||||
<source>RadioButton Group</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>T_Home</name>
|
||||
<message>
|
||||
@ -1831,6 +1877,46 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>T_Sheet</name>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="10"/>
|
||||
<source>Sheet</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="14"/>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="16"/>
|
||||
<source>Some contents...
|
||||
Some contents...
|
||||
Some contents...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="36"/>
|
||||
<source>top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="44"/>
|
||||
<source>right</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="55"/>
|
||||
<source>bottom</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="63"/>
|
||||
<source>left</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>T_ShortcutPicker</name>
|
||||
<message>
|
||||
|
@ -188,322 +188,332 @@
|
||||
<translation type="unfinished">切换开关</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="108"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="114"/>
|
||||
<source>PaneItem Disabled</source>
|
||||
<translation type="unfinished">PaneItem 已禁用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="115"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="108"/>
|
||||
<source>GroupBox</source>
|
||||
<translation type="unfinished">分组容器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="121"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished">表单</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="118"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="124"/>
|
||||
<source>TextBox</source>
|
||||
<translation type="unfinished">文本框</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="124"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="130"/>
|
||||
<source>TimePicker</source>
|
||||
<translation type="unfinished">时间选择器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="130"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="136"/>
|
||||
<source>DatePicker</source>
|
||||
<translation type="unfinished">日期选择器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="136"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="142"/>
|
||||
<source>CalendarPicker</source>
|
||||
<translation type="unfinished">日历选择器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="142"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="148"/>
|
||||
<source>ColorPicker</source>
|
||||
<translation type="unfinished">颜色选择器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="148"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="154"/>
|
||||
<source>ShortcutPicker</source>
|
||||
<translation type="unfinished">快捷键选择器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="156"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="162"/>
|
||||
<source>Surface</source>
|
||||
<translation type="unfinished">表面</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="159"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="165"/>
|
||||
<source>InfoBar</source>
|
||||
<translation type="unfinished">信息栏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="161"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="167"/>
|
||||
<source>An inline message to display app-wide statuschange information.</source>
|
||||
<translation type="unfinished">用于显示应用范围状态更改信息的内联消息。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="166"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="172"/>
|
||||
<source>Progress</source>
|
||||
<translation type="unfinished">进度条</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="172"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="178"/>
|
||||
<source>RatingControl</source>
|
||||
<translation type="unfinished">评级控制</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="178"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="184"/>
|
||||
<source>Badge</source>
|
||||
<translation type="unfinished">徽章</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="184"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="190"/>
|
||||
<source>Rectangle</source>
|
||||
<translation type="unfinished">矩形</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="190"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="196"/>
|
||||
<source>Clip</source>
|
||||
<translation type="unfinished">裁剪</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="196"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="202"/>
|
||||
<source>Carousel</source>
|
||||
<translation type="unfinished">轮播图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="202"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="208"/>
|
||||
<source>Expander</source>
|
||||
<translation type="unfinished">展开</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="208"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="214"/>
|
||||
<source>Watermark</source>
|
||||
<translation type="unfinished">水印</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="216"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="222"/>
|
||||
<source>Layout</source>
|
||||
<translation type="unfinished">布局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="219"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="225"/>
|
||||
<source>StaggeredLayout</source>
|
||||
<translation type="unfinished">瀑布流布局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="225"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="231"/>
|
||||
<source>SplitLayout</source>
|
||||
<translation type="unfinished">拆分布局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="231"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="237"/>
|
||||
<source>StatusLayout</source>
|
||||
<translation type="unfinished">状态布局</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="239"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="245"/>
|
||||
<source>Popus</source>
|
||||
<translation type="unfinished">弹窗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="242"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="248"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="unfinished">弹窗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="249"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="255"/>
|
||||
<source>ComboBox</source>
|
||||
<translation type="unfinished">组合框</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="263"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="269"/>
|
||||
<source>Tooltip</source>
|
||||
<translation type="unfinished">工具提示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="269"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="275"/>
|
||||
<source>Menu</source>
|
||||
<translation type="unfinished">菜单</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="277"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="281"/>
|
||||
<source>Sheet</source>
|
||||
<translation type="unfinished">抽屉</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="289"/>
|
||||
<source>Navigation</source>
|
||||
<translation type="unfinished">导航</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="280"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="292"/>
|
||||
<source>Pivot</source>
|
||||
<translation type="unfinished">轴转</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="282"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="294"/>
|
||||
<source>Presents information from different sources in a tabbed view.</source>
|
||||
<translation type="unfinished">在选项卡式视图中显示来自不同源的信息。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="287"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="299"/>
|
||||
<source>BreadcrumbBar</source>
|
||||
<translation type="unfinished">面包屑</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="293"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="305"/>
|
||||
<source>TabView</source>
|
||||
<translation type="unfinished">选项卡</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="295"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="307"/>
|
||||
<source>A control that displays a collection of tabs thatcan be used to display several documents.</source>
|
||||
<translation type="unfinished">一个控件,用于显示可用于显示多个文档的选项卡集合。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="300"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="312"/>
|
||||
<source>TreeView</source>
|
||||
<translation type="unfinished">树</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="306"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="318"/>
|
||||
<source>TableView</source>
|
||||
<translation type="unfinished">表格</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="308"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="320"/>
|
||||
<source>The TableView control provides a flexible way to display a collection of data in rows and columns</source>
|
||||
<translation type="unfinished">TableView 控件提供了一种以行和列形式显示数据集合的灵活方法</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="313"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="325"/>
|
||||
<source>Pagination</source>
|
||||
<translation type="unfinished">分页</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="319"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="331"/>
|
||||
<source>MultiWindow</source>
|
||||
<translation type="unfinished">多窗口</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="325"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="337"/>
|
||||
<source>FlipView</source>
|
||||
<translation type="unfinished">翻转视图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="327"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="339"/>
|
||||
<source>Presents a collection of items that the user canflip through, one item at a time.</source>
|
||||
<translation type="unfinished">显示用户可以翻阅的项集合,一次翻阅一个项。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="334"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="346"/>
|
||||
<source>Theming</source>
|
||||
<translation type="unfinished">主题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="337"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="349"/>
|
||||
<source>Acrylic</source>
|
||||
<translation type="unfinished">亚克力</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="343"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="355"/>
|
||||
<source>Theme</source>
|
||||
<translation type="unfinished">主题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="349"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="361"/>
|
||||
<source>Typography</source>
|
||||
<translation type="unfinished">字体</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="355"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="367"/>
|
||||
<source>Awesome</source>
|
||||
<translation type="unfinished">图标</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="363"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="375"/>
|
||||
<source>Chart</source>
|
||||
<translation type="unfinished">图表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="366"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="378"/>
|
||||
<source>Bar Chart</source>
|
||||
<translation type="unfinished">条形图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="372"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="384"/>
|
||||
<source>Line Chart</source>
|
||||
<translation type="unfinished">线型图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="378"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="390"/>
|
||||
<source>Pie Chart</source>
|
||||
<translation type="unfinished">饼图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="384"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="396"/>
|
||||
<source>Polar Area Chart</source>
|
||||
<translation type="unfinished">极坐标区域图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="390"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="402"/>
|
||||
<source>Bubble Chart</source>
|
||||
<translation type="unfinished">气泡图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="396"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="408"/>
|
||||
<source>Scatter Chart</source>
|
||||
<translation type="unfinished">散点图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="402"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="414"/>
|
||||
<source>Radar Chart</source>
|
||||
<translation type="unfinished">雷达图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="415"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="427"/>
|
||||
<source>Other</source>
|
||||
<translation type="unfinished">其他</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="418"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="430"/>
|
||||
<source>QRCode</source>
|
||||
<translation type="unfinished">二维码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="424"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="436"/>
|
||||
<source>Tour</source>
|
||||
<translation type="unfinished">游览</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="430"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="442"/>
|
||||
<source>Timeline</source>
|
||||
<translation type="unfinished">时间轴</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="436"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="448"/>
|
||||
<source>Captcha</source>
|
||||
<translation type="unfinished">验证码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="442"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="454"/>
|
||||
<source>Network</source>
|
||||
<translation type="unfinished">网络</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="449"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="461"/>
|
||||
<source>Remote Loader</source>
|
||||
<translation type="unfinished">远程加载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="463"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="475"/>
|
||||
<source>Hot Loader</source>
|
||||
<translation type="unfinished">热加载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="469"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="481"/>
|
||||
<source>3D</source>
|
||||
<translation type="unfinished">3D</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="475"/>
|
||||
<location filename="qml/global/ItemsOriginal.qml" line="487"/>
|
||||
<source>Test Crash</source>
|
||||
<translation type="unfinished">测试崩溃</translation>
|
||||
</message>
|
||||
@ -1342,6 +1352,42 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
|
||||
<translation type="unfinished">垂直方向的翻转视图</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>T_GroupBox</name>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="10"/>
|
||||
<source>GroupBox</source>
|
||||
<translation type="unfinished">分组容器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="13"/>
|
||||
<source>CheckBox Group</source>
|
||||
<translation type="unfinished">复选框分组</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="17"/>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="27"/>
|
||||
<source>E-mail</source>
|
||||
<translation type="unfinished">邮箱</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="18"/>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="28"/>
|
||||
<source>Calendar</source>
|
||||
<translation type="unfinished">日历</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="19"/>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="29"/>
|
||||
<source>Contacts</source>
|
||||
<translation type="unfinished">联系人</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_GroupBox.qml" line="24"/>
|
||||
<source>RadioButton Group</source>
|
||||
<translation type="unfinished">单选框分组</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>T_Home</name>
|
||||
<message>
|
||||
@ -1880,6 +1926,48 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
|
||||
<translation type="unfinished">语言</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>T_Sheet</name>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="10"/>
|
||||
<source>Sheet</source>
|
||||
<translation type="unfinished">抽屉</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="14"/>
|
||||
<source>Title</source>
|
||||
<translation type="unfinished">标题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="16"/>
|
||||
<source>Some contents...
|
||||
Some contents...
|
||||
Some contents...</source>
|
||||
<translation type="unfinished">一些内容...
|
||||
一些内容...
|
||||
一些内容...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="36"/>
|
||||
<source>top</source>
|
||||
<translation type="unfinished">上</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="44"/>
|
||||
<source>right</source>
|
||||
<translation type="unfinished">右</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="55"/>
|
||||
<source>bottom</source>
|
||||
<translation type="unfinished">下</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_Sheet.qml" line="63"/>
|
||||
<source>left</source>
|
||||
<translation type="unfinished">左</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>T_ShortcutPicker</name>
|
||||
<message>
|
||||
|
@ -137,7 +137,9 @@ FluExpander{
|
||||
"FluNetwork",
|
||||
"FluShortcutPicker",
|
||||
"FluWindowResultLauncher",
|
||||
"FluRouter"
|
||||
"FluRouter",
|
||||
"FluGroupBox",
|
||||
"FluSheet",
|
||||
];
|
||||
code = code.replace(/\n/g, "<br>");
|
||||
code = code.replace(/ /g, " ");
|
||||
|
@ -104,6 +104,12 @@ FluObject{
|
||||
url: "qrc:/example/qml/page/T_ToggleSwitch.qml"
|
||||
onTap: { navigationView.push(url) }
|
||||
}
|
||||
FluPaneItem{
|
||||
title: qsTr("GroupBox")
|
||||
menuDelegate: paneItemMenu
|
||||
url: "qrc:/example/qml/page/T_GroupBox.qml"
|
||||
onTap: { navigationView.push(url) }
|
||||
}
|
||||
FluPaneItem{
|
||||
title: qsTr("PaneItem Disabled")
|
||||
disabled: true
|
||||
@ -271,6 +277,12 @@ FluObject{
|
||||
url: "qrc:/example/qml/page/T_Menu.qml"
|
||||
onTap: { navigationView.push(url) }
|
||||
}
|
||||
FluPaneItem{
|
||||
title: qsTr("Sheet")
|
||||
menuDelegate: paneItemMenu
|
||||
url: "qrc:/example/qml/page/T_Sheet.qml"
|
||||
onTap: { navigationView.push(url) }
|
||||
}
|
||||
}
|
||||
|
||||
FluPaneItemExpander{
|
||||
|
48
example/qml/page/T_GroupBox.qml
Normal file
48
example/qml/page/T_GroupBox.qml
Normal file
@ -0,0 +1,48 @@
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Window 2.15
|
||||
import FluentUI 1.0
|
||||
import "../component"
|
||||
|
||||
FluScrollablePage{
|
||||
|
||||
title: qsTr("GroupBox")
|
||||
|
||||
FluGroupBox {
|
||||
title: qsTr("CheckBox Group")
|
||||
ColumnLayout {
|
||||
spacing: 10
|
||||
anchors.fill: parent
|
||||
FluCheckBox { text: qsTr("E-mail") }
|
||||
FluCheckBox { text: qsTr("Calendar") }
|
||||
FluCheckBox { text: qsTr("Contacts") }
|
||||
}
|
||||
}
|
||||
|
||||
FluGroupBox {
|
||||
title: qsTr("RadioButton Group")
|
||||
FluRadioButtons {
|
||||
spacing: 10
|
||||
FluRadioButton { text: qsTr("E-mail") }
|
||||
FluRadioButton { text: qsTr("Calendar") }
|
||||
FluRadioButton { text: qsTr("Contacts") }
|
||||
}
|
||||
}
|
||||
|
||||
CodeExpander{
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 4
|
||||
code:'FluGroupBox {
|
||||
title: qsTr("CheckBox Group")
|
||||
ColumnLayout {
|
||||
spacing: 10
|
||||
anchors.fill: parent
|
||||
FluCheckBox { text: qsTr("E-mail") }
|
||||
FluCheckBox { text: qsTr("Calendar") }
|
||||
FluCheckBox { text: qsTr("Contacts") }
|
||||
}
|
||||
}'
|
||||
}
|
||||
|
||||
}
|
@ -7,7 +7,6 @@ import "../component"
|
||||
|
||||
FluPage{
|
||||
launchMode: FluPageType.SingleTop
|
||||
header:Item{}
|
||||
FluRemoteLoader{
|
||||
anchors.fill: parent
|
||||
source: "https://zhu-zichu.gitee.io/Qt_174_RemoteLoader.qml"
|
||||
|
90
example/qml/page/T_Sheet.qml
Normal file
90
example/qml/page/T_Sheet.qml
Normal file
@ -0,0 +1,90 @@
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Window 2.15
|
||||
import FluentUI 1.0
|
||||
import "../component"
|
||||
|
||||
FluScrollablePage{
|
||||
|
||||
title: qsTr("Sheet")
|
||||
|
||||
FluSheet{
|
||||
id:sheet
|
||||
title: qsTr("Title")
|
||||
FluText{
|
||||
text: qsTr("Some contents...\nSome contents...\nSome contents...")
|
||||
anchors{
|
||||
left: parent.left
|
||||
leftMargin: 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FluFrame{
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 280
|
||||
padding: 10
|
||||
Column{
|
||||
anchors.centerIn: parent
|
||||
spacing: 10
|
||||
Row{
|
||||
spacing: 10
|
||||
FluButton{
|
||||
width: 80
|
||||
height: 30
|
||||
text: qsTr("top")
|
||||
onClicked: {
|
||||
sheet.open(FluSheetType.Top)
|
||||
}
|
||||
}
|
||||
FluButton{
|
||||
width: 80
|
||||
height: 30
|
||||
text: qsTr("right")
|
||||
onClicked: {
|
||||
sheet.open(FluSheetType.Right)
|
||||
}
|
||||
}
|
||||
}
|
||||
Row{
|
||||
spacing: 10
|
||||
FluButton{
|
||||
width: 80
|
||||
height: 30
|
||||
text: qsTr("bottom")
|
||||
onClicked: {
|
||||
sheet.open(FluSheetType.Bottom)
|
||||
}
|
||||
}
|
||||
FluButton{
|
||||
width: 80
|
||||
height: 30
|
||||
text: qsTr("left")
|
||||
onClicked: {
|
||||
sheet.open(FluSheetType.Left)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CodeExpander{
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: -6
|
||||
code:'FluSheet{
|
||||
id:sheet
|
||||
title: qsTr("Title")
|
||||
FluText{
|
||||
text: qsTr("Some contents...")
|
||||
anchors{
|
||||
left: parent.left
|
||||
leftMargin: 10
|
||||
}
|
||||
}
|
||||
}
|
||||
sheet.open(FluSheetType.Bottom)
|
||||
'
|
||||
}
|
||||
|
||||
}
|
11
src/Def.h
11
src/Def.h
@ -4,6 +4,17 @@
|
||||
#include <QObject>
|
||||
#include <QtQml/qqml.h>
|
||||
|
||||
namespace FluSheetType {
|
||||
Q_NAMESPACE
|
||||
enum Position {
|
||||
Left = 0x0000,
|
||||
Top = 0x0001,
|
||||
Right = 0x0002,
|
||||
Bottom = 0x0004,
|
||||
};
|
||||
Q_ENUM_NS(Position)
|
||||
QML_NAMED_ELEMENT(FluSheetType)
|
||||
}
|
||||
|
||||
namespace FluThemeType {
|
||||
Q_NAMESPACE
|
||||
|
@ -142,6 +142,7 @@ bool FluFrameless::nativeEventFilter(const QByteArray &eventType, void *message,
|
||||
}else{
|
||||
offsetSize = 1;
|
||||
}
|
||||
_maximizeButton->setProperty("hover",false);
|
||||
if(!isCompositionEnabled()){
|
||||
offsetSize = 0;
|
||||
}
|
||||
@ -158,8 +159,11 @@ bool FluFrameless::nativeEventFilter(const QByteArray &eventType, void *message,
|
||||
if (*result == HTNOWHERE) {
|
||||
*result = HTZOOM;
|
||||
}
|
||||
_setMaximizeHoverd(true);
|
||||
return true;
|
||||
}
|
||||
_setMaximizeHoverd(false);
|
||||
_setMaximizePressed(false);
|
||||
*result = 0;
|
||||
POINT nativeGlobalPos{GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)};
|
||||
POINT nativeLocalPos = nativeGlobalPos;
|
||||
@ -205,12 +209,14 @@ bool FluFrameless::nativeEventFilter(const QByteArray &eventType, void *message,
|
||||
if(_hitMaximizeButton()){
|
||||
QMouseEvent event = QMouseEvent(QEvent::MouseButtonPress, QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
|
||||
QGuiApplication::sendEvent(_maximizeButton,&event);
|
||||
_setMaximizePressed(true);
|
||||
return true;
|
||||
}
|
||||
}else if(uMsg == WM_NCLBUTTONUP || uMsg == WM_NCRBUTTONUP){
|
||||
if(_hitMaximizeButton()){
|
||||
QMouseEvent event = QMouseEvent(QEvent::MouseButtonRelease, QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
|
||||
QGuiApplication::sendEvent(_maximizeButton,&event);
|
||||
_setMaximizePressed(false);
|
||||
return true;
|
||||
}
|
||||
}else if(uMsg == WM_NCPAINT){
|
||||
@ -331,6 +337,14 @@ bool FluFrameless::_hitMaximizeButton(){
|
||||
return false;
|
||||
}
|
||||
|
||||
void FluFrameless::_setMaximizePressed(bool val){
|
||||
_maximizeButton->setProperty("down",val);
|
||||
}
|
||||
|
||||
void FluFrameless::_setMaximizeHoverd(bool val){
|
||||
_maximizeButton->setProperty("hover",val);
|
||||
}
|
||||
|
||||
void FluFrameless::_updateCursor(int edges){
|
||||
switch (edges) {
|
||||
case 0:
|
||||
@ -377,7 +391,9 @@ void FluFrameless::showNormal(){
|
||||
}
|
||||
|
||||
void FluFrameless::setHitTestVisible(QQuickItem* val){
|
||||
_hitTestList.append(val);
|
||||
if(!_hitTestList.contains(val)){
|
||||
_hitTestList.append(val);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -47,6 +47,8 @@ private:
|
||||
bool _containsCursorToItem(QQuickItem* item);
|
||||
bool _hitAppBar();
|
||||
bool _hitMaximizeButton();
|
||||
void _setMaximizePressed(bool val);
|
||||
void _setMaximizeHoverd(bool val);
|
||||
private:
|
||||
qint64 _current;
|
||||
int _edges = 0;
|
||||
|
@ -124,6 +124,8 @@ void FluentUI::registerTypes(const char *uri){
|
||||
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluWindowResultLauncher.qml"),uri,major,minor,"FluWindowResultLauncher");
|
||||
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluLauncher.qml"),uri,major,minor,"FluLauncher");
|
||||
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluEvent.qml"),uri,major,minor,"FluEvent");
|
||||
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluSheet.qml"),uri,major,minor,"FluSheet");
|
||||
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluGroupBox.qml"),uri,major,minor,"FluGroupBox");
|
||||
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluRouter.qml"),uri,major,minor,"FluRouter");
|
||||
qmlRegisterSingletonType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluEventBus.qml"),uri,major,minor,"FluEventBus");
|
||||
|
||||
@ -139,6 +141,7 @@ void FluentUI::registerTypes(const char *uri){
|
||||
qmlRegisterUncreatableMetaObject(FluTabViewType::staticMetaObject, uri,major,minor,"FluTabViewType", "Access to enums & flags only");
|
||||
qmlRegisterUncreatableMetaObject(FluNavigationViewType::staticMetaObject, uri,major,minor,"FluNavigationViewType", "Access to enums & flags only");
|
||||
qmlRegisterUncreatableMetaObject(FluTimelineType::staticMetaObject, uri,major,minor,"FluTimelineType", "Access to enums & flags only");
|
||||
qmlRegisterUncreatableMetaObject(FluSheetType::staticMetaObject, uri,major,minor,"FluSheetType", "Access to enums & flags only");
|
||||
|
||||
qmlRegisterModule(uri,major,minor);
|
||||
#endif
|
||||
|
@ -225,6 +225,7 @@ Rectangle{
|
||||
}
|
||||
FluIconButton{
|
||||
id:btn_maximize
|
||||
property bool hover: btn_maximize.hovered
|
||||
Layout.preferredWidth: 40
|
||||
Layout.preferredHeight: 30
|
||||
padding: 0
|
||||
@ -232,10 +233,10 @@ Rectangle{
|
||||
horizontalPadding: 0
|
||||
iconSource : d.isRestore ? FluentIcons.ChromeRestore : FluentIcons.ChromeMaximize
|
||||
color: {
|
||||
if(pressed){
|
||||
if(down){
|
||||
return maximizePressColor
|
||||
}
|
||||
return hovered ? maximizeHoverColor : maximizeNormalColor
|
||||
return btn_maximize.hover ? maximizeHoverColor : maximizeNormalColor
|
||||
}
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
visible: d.resizable && !isMac && showMaximize
|
||||
|
@ -41,6 +41,8 @@ Button {
|
||||
visible: control.activeFocus
|
||||
}
|
||||
}
|
||||
focusPolicy:Qt.TabFocus
|
||||
font:FluTextStyle.Body
|
||||
horizontalPadding:0
|
||||
verticalPadding: 0
|
||||
padding: 0
|
||||
@ -48,7 +50,6 @@ Button {
|
||||
Accessible.name: control.text
|
||||
Accessible.description: contentDescription
|
||||
Accessible.onPressAction: control.clicked()
|
||||
focusPolicy:Qt.TabFocus
|
||||
contentItem: RowLayout{
|
||||
spacing: control.textSpacing
|
||||
layoutDirection:control.textRight ? Qt.LeftToRight : Qt.RightToLeft
|
||||
@ -133,6 +134,7 @@ Button {
|
||||
text: control.text
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
visible: text !== ""
|
||||
font: control.font
|
||||
}
|
||||
}
|
||||
}
|
||||
|
39
src/Qt5/imports/FluentUI/Controls/FluGroupBox.qml
Normal file
39
src/Qt5/imports/FluentUI/Controls/FluGroupBox.qml
Normal file
@ -0,0 +1,39 @@
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Window 2.15
|
||||
import QtQuick.Controls.impl 2.15
|
||||
import QtQuick.Templates 2.15 as T
|
||||
import FluentUI 1.0
|
||||
|
||||
T.GroupBox {
|
||||
id: control
|
||||
property int borderWidth : 1
|
||||
property color borderColor : FluTheme.dark ? Window.active ? Qt.rgba(55/255,55/255,55/255,1):Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(226/255,229/255,234/255,1)
|
||||
property color color: FluTheme.dark ? Window.active ? Qt.rgba(38/255,44/255,54/255,1) : Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1)
|
||||
property int radius: 4
|
||||
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
|
||||
contentWidth + leftPadding + rightPadding,
|
||||
implicitLabelWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
||||
contentHeight + topPadding + bottomPadding)
|
||||
spacing: 6
|
||||
padding: 12
|
||||
font: FluTextStyle.Body
|
||||
topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
|
||||
label: FluText {
|
||||
width: control.availableWidth
|
||||
text: control.title
|
||||
font: FluTextStyle.BodyStrong
|
||||
elide: Text.ElideRight
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
background: Rectangle {
|
||||
y: control.topPadding - control.bottomPadding
|
||||
width: parent.width
|
||||
height: parent.height - control.topPadding + control.bottomPadding
|
||||
radius: control.radius
|
||||
border.color: control.borderColor
|
||||
border.width: control.borderWidth
|
||||
color: control.color
|
||||
}
|
||||
}
|
@ -16,7 +16,7 @@ Page {
|
||||
transform: Translate {
|
||||
y: control.visible ? 0 : 80
|
||||
Behavior on y{
|
||||
enabled: control.animationEnabled
|
||||
enabled: control.animationEnabled && FluTheme.animationEnabled
|
||||
NumberAnimation{
|
||||
duration: 167
|
||||
easing.type: Easing.OutCubic
|
||||
@ -24,21 +24,27 @@ Page {
|
||||
}
|
||||
}
|
||||
Behavior on opacity {
|
||||
enabled: control.animationEnabled
|
||||
enabled: control.animationEnabled && FluTheme.animationEnabled
|
||||
NumberAnimation{
|
||||
duration: 83
|
||||
}
|
||||
}
|
||||
background: Item{}
|
||||
header: Item{
|
||||
implicitHeight: 40
|
||||
FluText{
|
||||
id:text_title
|
||||
text: control.title
|
||||
font: FluTextStyle.Title
|
||||
anchors{
|
||||
left: parent.left
|
||||
leftMargin: 5
|
||||
header: FluLoader{
|
||||
sourceComponent: control.title === "" ? undefined : com_header
|
||||
}
|
||||
Component{
|
||||
id: com_header
|
||||
Item{
|
||||
implicitHeight: 40
|
||||
FluText{
|
||||
id:text_title
|
||||
text: control.title
|
||||
font: FluTextStyle.Title
|
||||
anchors{
|
||||
left: parent.left
|
||||
leftMargin: 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -92,6 +92,7 @@ Button {
|
||||
id:btn_text
|
||||
text: control.text
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
visible: text !== ""
|
||||
font: control.font
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import FluentUI 1.0
|
||||
|
||||
Item {
|
||||
//高性能阴影!!!比DropShadow阴影性能高出数倍!!!
|
||||
property color color: FluTheme.dark ? "#FFFFFF" : "#999999"
|
||||
property color color: FluTheme.dark ? "#AAAAAA" : "#999999"
|
||||
property int elevation: 6
|
||||
property int radius: 4
|
||||
id:control
|
||||
|
210
src/Qt5/imports/FluentUI/Controls/FluSheet.qml
Normal file
210
src/Qt5/imports/FluentUI/Controls/FluSheet.qml
Normal file
@ -0,0 +1,210 @@
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Window 2.15
|
||||
import FluentUI 1.0
|
||||
|
||||
Popup {
|
||||
id: control
|
||||
default property alias content : container.contentData
|
||||
property string title
|
||||
property var header : Item{
|
||||
implicitHeight: 40
|
||||
FluIconButton{
|
||||
id: btn_close
|
||||
iconSource: FluentIcons.Clear
|
||||
iconSize: 15
|
||||
verticalPadding: 6
|
||||
horizontalPadding: 6
|
||||
width: 30
|
||||
height: 30
|
||||
anchors{
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: parent.left
|
||||
leftMargin: 5
|
||||
}
|
||||
onClicked: {
|
||||
control.visible = false
|
||||
}
|
||||
}
|
||||
FluText{
|
||||
id:text_title
|
||||
text: control.title
|
||||
font: FluTextStyle.Subtitle
|
||||
anchors{
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: btn_close.right
|
||||
leftMargin: 5
|
||||
right: parent.right
|
||||
rightMargin: 5
|
||||
}
|
||||
}
|
||||
}
|
||||
property int size: 278
|
||||
|
||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||
padding: 0
|
||||
modal:true
|
||||
parent: Overlay.overlay
|
||||
enter: {
|
||||
if(d.position === FluSheetType.Top){
|
||||
return enter_top
|
||||
}else if(d.position === FluSheetType.Left){
|
||||
return enter_left
|
||||
}else if(d.position === FluSheetType.Right){
|
||||
return enter_right
|
||||
}else{
|
||||
return enter_bottom
|
||||
}
|
||||
}
|
||||
exit: {
|
||||
if(d.position === FluSheetType.Top){
|
||||
return exit_top
|
||||
}else if(d.position === FluSheetType.Left){
|
||||
return exit_left
|
||||
}else if(d.position === FluSheetType.Right){
|
||||
return exit_right
|
||||
}else{
|
||||
return exit_bottom
|
||||
}
|
||||
}
|
||||
Item {
|
||||
id: d
|
||||
property var win: Window.window
|
||||
onWinChanged: {
|
||||
if(win instanceof FluWindow){
|
||||
win.setHitTestVisible(container)
|
||||
}
|
||||
}
|
||||
property int position: FluSheetType.Bottom
|
||||
property int parentHeight: {
|
||||
if(control.parent){
|
||||
return control.parent.height
|
||||
}
|
||||
return control.height
|
||||
}
|
||||
property int parentWidth: {
|
||||
if(control.parent){
|
||||
return control.parent.width
|
||||
}
|
||||
return control.width
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:enter_right
|
||||
onRunningChanged: {
|
||||
if(!running){
|
||||
control.x = Qt.binding(function(){return d.parentWidth - control.width})
|
||||
}
|
||||
}
|
||||
NumberAnimation{
|
||||
property: "x"
|
||||
duration: 167
|
||||
from: d.parentWidth
|
||||
to: d.parentWidth - control.width
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:exit_right
|
||||
NumberAnimation{
|
||||
property: "x"
|
||||
duration: 167
|
||||
from: d.parentWidth - control.width
|
||||
to: d.parentWidth
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:enter_left
|
||||
NumberAnimation{
|
||||
property: "x"
|
||||
duration: 167
|
||||
from: -control.width
|
||||
to: 0
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:exit_left
|
||||
NumberAnimation{
|
||||
property: "x"
|
||||
duration: 167
|
||||
from: 0
|
||||
to: -control.width
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:enter_top
|
||||
NumberAnimation{
|
||||
property: "y"
|
||||
duration: 167
|
||||
from: -control.height
|
||||
to: 0
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:exit_top
|
||||
NumberAnimation{
|
||||
property: "y"
|
||||
duration: 167
|
||||
from: 0
|
||||
to: -control.height
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:enter_bottom
|
||||
onRunningChanged: {
|
||||
if(!running){
|
||||
control.y = Qt.binding(function(){return d.parentHeight - control.height})
|
||||
}
|
||||
}
|
||||
NumberAnimation{
|
||||
property: "y"
|
||||
duration: 167
|
||||
from: d.parentHeight
|
||||
to: d.parentHeight - control.height
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:exit_bottom
|
||||
NumberAnimation{
|
||||
property: "y"
|
||||
duration: 167
|
||||
from: d.parentHeight - control.height
|
||||
to: d.parentHeight
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
background: Rectangle {
|
||||
FluShadow{
|
||||
radius: 0
|
||||
}
|
||||
border.color: FluTheme.dark ? Window.active ? Qt.rgba(55/255,55/255,55/255,1):Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(226/255,229/255,234/255,1)
|
||||
color: FluTheme.dark ? Window.active ? Qt.rgba(38/255,44/255,54/255,1) : Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1)
|
||||
}
|
||||
Page{
|
||||
id: container
|
||||
anchors.fill: parent
|
||||
header: control.header
|
||||
background: Item{}
|
||||
}
|
||||
function open(position = FluSheetType.Bottom){
|
||||
control.x = 0
|
||||
control.y = 0
|
||||
|
||||
d.position = position
|
||||
if(d.position === FluSheetType.Top || d.position === FluSheetType.Bottom){
|
||||
control.width = Qt.binding(function(){return d.parentWidth})
|
||||
control.height = size
|
||||
}else{
|
||||
control.width = size
|
||||
control.height = Qt.binding(function(){return d.parentHeight})
|
||||
}
|
||||
control.visible = true
|
||||
}
|
||||
}
|
@ -143,6 +143,21 @@ Module {
|
||||
Property { name: "color"; type: "QColor" }
|
||||
Property { name: "radius"; type: "QList<int>" }
|
||||
}
|
||||
Component {
|
||||
name: "FluSheetType"
|
||||
exports: ["FluentUI/FluSheetType 1.0"]
|
||||
isCreatable: false
|
||||
exportMetaObjectRevisions: [0]
|
||||
Enum {
|
||||
name: "Position"
|
||||
values: {
|
||||
"Left": 0,
|
||||
"Top": 1,
|
||||
"Right": 2,
|
||||
"Bottom": 4
|
||||
}
|
||||
}
|
||||
}
|
||||
Component {
|
||||
name: "FluStatusLayoutType"
|
||||
exports: ["FluentUI/FluStatusLayoutType 1.0"]
|
||||
@ -2196,31 +2211,31 @@ Module {
|
||||
Property { name: "darkClickListener"; type: "QVariant" }
|
||||
Property {
|
||||
name: "buttonStayTop"
|
||||
type: "FluIconButton_QMLTYPE_20"
|
||||
type: "FluIconButton_QMLTYPE_19"
|
||||
isReadonly: true
|
||||
isPointer: true
|
||||
}
|
||||
Property {
|
||||
name: "buttonMinimize"
|
||||
type: "FluIconButton_QMLTYPE_20"
|
||||
type: "FluIconButton_QMLTYPE_19"
|
||||
isReadonly: true
|
||||
isPointer: true
|
||||
}
|
||||
Property {
|
||||
name: "buttonMaximize"
|
||||
type: "FluIconButton_QMLTYPE_20"
|
||||
type: "FluIconButton_QMLTYPE_19"
|
||||
isReadonly: true
|
||||
isPointer: true
|
||||
}
|
||||
Property {
|
||||
name: "buttonClose"
|
||||
type: "FluIconButton_QMLTYPE_20"
|
||||
type: "FluIconButton_QMLTYPE_19"
|
||||
isReadonly: true
|
||||
isPointer: true
|
||||
}
|
||||
Property {
|
||||
name: "buttonDark"
|
||||
type: "FluIconButton_QMLTYPE_20"
|
||||
type: "FluIconButton_QMLTYPE_19"
|
||||
isReadonly: true
|
||||
isPointer: true
|
||||
}
|
||||
@ -2237,20 +2252,6 @@ Module {
|
||||
isPointer: true
|
||||
}
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickRectangle"
|
||||
name: "FluentUI/FluArea 1.0"
|
||||
exports: ["FluentUI/FluArea 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "contentData"
|
||||
Property { name: "paddings"; type: "int" }
|
||||
Property { name: "leftPadding"; type: "int" }
|
||||
Property { name: "rightPadding"; type: "int" }
|
||||
Property { name: "topPadding"; type: "int" }
|
||||
Property { name: "bottomPadding"; type: "int" }
|
||||
Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickTextField"
|
||||
name: "FluentUI/FluAutoSuggestBox 1.0"
|
||||
@ -2420,7 +2421,7 @@ Module {
|
||||
Property { name: "size"; type: "double" }
|
||||
Property { name: "textRight"; type: "bool" }
|
||||
Property { name: "textSpacing"; type: "double" }
|
||||
Property { name: "enableAnimation"; type: "bool" }
|
||||
Property { name: "animationEnabled"; type: "bool" }
|
||||
Property { name: "clickListener"; type: "QVariant" }
|
||||
Property { name: "indeterminate"; type: "bool" }
|
||||
Property { name: "textColor"; type: "QColor" }
|
||||
@ -2492,30 +2493,14 @@ Module {
|
||||
Signal { name: "positiveClicked" }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickItem"
|
||||
prototype: "QQuickPage"
|
||||
name: "FluentUI/FluContentPage 1.0"
|
||||
exports: ["FluentUI/FluContentPage 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "content"
|
||||
Property { name: "leftPadding"; type: "int" }
|
||||
Property { name: "topPadding"; type: "int" }
|
||||
Property { name: "rightPadding"; type: "int" }
|
||||
Property { name: "bottomPadding"; type: "int" }
|
||||
Property { name: "title"; type: "string" }
|
||||
Property { name: "content"; type: "QObject"; isList: true; isReadonly: true }
|
||||
Property { name: "color"; type: "QColor" }
|
||||
Property { name: "statusMode"; type: "int" }
|
||||
Property { name: "loadingText"; type: "string" }
|
||||
Property { name: "emptyText"; type: "string" }
|
||||
Property { name: "errorText"; type: "string" }
|
||||
Property { name: "errorButtonText"; type: "string" }
|
||||
Property { name: "loadingItem"; type: "QQmlComponent"; isPointer: true }
|
||||
Property { name: "emptyItem"; type: "QQmlComponent"; isPointer: true }
|
||||
Property { name: "errorItem"; type: "QQmlComponent"; isPointer: true }
|
||||
Signal { name: "errorClicked" }
|
||||
defaultProperty: "contentData"
|
||||
Property { name: "launchMode"; type: "int" }
|
||||
Property { name: "animDisabled"; type: "bool" }
|
||||
Property { name: "animationEnabled"; type: "bool" }
|
||||
Property { name: "url"; type: "string" }
|
||||
}
|
||||
Component {
|
||||
@ -2689,6 +2674,29 @@ Module {
|
||||
defaultProperty: "data"
|
||||
Property { name: "radius"; type: "int" }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickFrame"
|
||||
name: "FluentUI/FluFrame 1.0"
|
||||
exports: ["FluentUI/FluFrame 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "contentData"
|
||||
Property { name: "border"; type: "QQuickPen"; isReadonly: true; isPointer: true }
|
||||
Property { name: "color"; type: "QColor" }
|
||||
Property { name: "radius"; type: "double" }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickGroupBox"
|
||||
name: "FluentUI/FluGroupBox 1.0"
|
||||
exports: ["FluentUI/FluGroupBox 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "contentData"
|
||||
Property { name: "borderWidth"; type: "int" }
|
||||
Property { name: "borderColor"; type: "QColor" }
|
||||
Property { name: "color"; type: "QColor" }
|
||||
Property { name: "radius"; type: "int" }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickText"
|
||||
name: "FluentUI/FluIcon 1.0"
|
||||
@ -2837,7 +2845,7 @@ Module {
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "contentData"
|
||||
Property { name: "enableAnimation"; type: "bool" }
|
||||
Property { name: "animationEnabled"; type: "bool" }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickMenuBar"
|
||||
@ -2906,15 +2914,15 @@ Module {
|
||||
defaultProperty: "data"
|
||||
Property { name: "logo"; type: "QUrl" }
|
||||
Property { name: "title"; type: "string" }
|
||||
Property { name: "items"; type: "FluObject_QMLTYPE_168"; isPointer: true }
|
||||
Property { name: "footerItems"; type: "FluObject_QMLTYPE_168"; isPointer: true }
|
||||
Property { name: "items"; type: "FluObject_QMLTYPE_134"; isPointer: true }
|
||||
Property { name: "footerItems"; type: "FluObject_QMLTYPE_134"; isPointer: true }
|
||||
Property { name: "displayMode"; type: "int" }
|
||||
Property { name: "autoSuggestBox"; type: "QQmlComponent"; isPointer: true }
|
||||
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
|
||||
Property { name: "topPadding"; type: "int" }
|
||||
Property { name: "pageMode"; type: "int" }
|
||||
Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_32"; isPointer: true }
|
||||
Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_32"; isPointer: true }
|
||||
Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_42"; isPointer: true }
|
||||
Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_42"; isPointer: true }
|
||||
Property { name: "navCompactWidth"; type: "int" }
|
||||
Property { name: "navTopMargin"; type: "int" }
|
||||
Property { name: "cellHeight"; type: "int" }
|
||||
@ -2922,13 +2930,13 @@ Module {
|
||||
Property { name: "hideNavAppBar"; type: "bool" }
|
||||
Property {
|
||||
name: "buttonMenu"
|
||||
type: "FluIconButton_QMLTYPE_20"
|
||||
type: "FluIconButton_QMLTYPE_19"
|
||||
isReadonly: true
|
||||
isPointer: true
|
||||
}
|
||||
Property {
|
||||
name: "buttonBack"
|
||||
type: "FluIconButton_QMLTYPE_20"
|
||||
type: "FluIconButton_QMLTYPE_19"
|
||||
isReadonly: true
|
||||
isPointer: true
|
||||
}
|
||||
@ -2965,14 +2973,14 @@ Module {
|
||||
Property { name: "children"; type: "QObject"; isList: true; isReadonly: true }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickItem"
|
||||
prototype: "QQuickPage"
|
||||
name: "FluentUI/FluPage 1.0"
|
||||
exports: ["FluentUI/FluPage 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "data"
|
||||
defaultProperty: "contentData"
|
||||
Property { name: "launchMode"; type: "int" }
|
||||
Property { name: "animDisabled"; type: "bool" }
|
||||
Property { name: "animationEnabled"; type: "bool" }
|
||||
Property { name: "url"; type: "string" }
|
||||
}
|
||||
Component {
|
||||
@ -3007,7 +3015,7 @@ Module {
|
||||
exports: ["FluentUI/FluPaneItem 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
Property { name: "key"; type: "string"; isReadonly: true }
|
||||
Property { name: "key"; type: "string" }
|
||||
Property { name: "_idx"; type: "int" }
|
||||
Property { name: "_ext"; type: "QVariant" }
|
||||
Property { name: "_parent"; type: "QVariant" }
|
||||
@ -3033,7 +3041,7 @@ Module {
|
||||
exports: ["FluentUI/FluPaneItemEmpty 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
Property { name: "key"; type: "string"; isReadonly: true }
|
||||
Property { name: "key"; type: "string" }
|
||||
Property { name: "_idx"; type: "int" }
|
||||
Property { name: "_ext"; type: "QVariant" }
|
||||
Property { name: "_parent"; type: "QVariant" }
|
||||
@ -3046,7 +3054,7 @@ Module {
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "children"
|
||||
Property { name: "key"; type: "string"; isReadonly: true }
|
||||
Property { name: "key"; type: "string" }
|
||||
Property { name: "_idx"; type: "int" }
|
||||
Property { name: "visible"; type: "bool" }
|
||||
Property { name: "title"; type: "string" }
|
||||
@ -3066,7 +3074,7 @@ Module {
|
||||
exports: ["FluentUI/FluPaneItemHeader 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
Property { name: "key"; type: "string"; isReadonly: true }
|
||||
Property { name: "key"; type: "string" }
|
||||
Property { name: "_idx"; type: "int" }
|
||||
Property { name: "visible"; type: "bool" }
|
||||
Property { name: "title"; type: "string" }
|
||||
@ -3078,7 +3086,7 @@ Module {
|
||||
exports: ["FluentUI/FluPaneItemSeparator 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
Property { name: "key"; type: "string"; isReadonly: true }
|
||||
Property { name: "key"; type: "string" }
|
||||
Property { name: "_idx"; type: "int" }
|
||||
Property { name: "visible"; type: "bool" }
|
||||
Property { name: "parent"; type: "QVariant" }
|
||||
@ -3146,6 +3154,7 @@ Module {
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "data"
|
||||
Property { name: "duration"; type: "int" }
|
||||
Property { name: "strokeWidth"; type: "double" }
|
||||
Property { name: "progressVisible"; type: "bool" }
|
||||
Property { name: "color"; type: "QColor" }
|
||||
@ -3323,31 +3332,15 @@ Module {
|
||||
defaultProperty: "data"
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickItem"
|
||||
prototype: "QQuickPage"
|
||||
name: "FluentUI/FluScrollablePage 1.0"
|
||||
exports: ["FluentUI/FluScrollablePage 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "content"
|
||||
Property { name: "spacing"; type: "int" }
|
||||
Property { name: "leftPadding"; type: "int" }
|
||||
Property { name: "topPadding"; type: "int" }
|
||||
Property { name: "rightPadding"; type: "int" }
|
||||
Property { name: "bottomPadding"; type: "int" }
|
||||
Property { name: "title"; type: "string" }
|
||||
Property { name: "content"; type: "QObject"; isList: true; isReadonly: true }
|
||||
Property { name: "color"; type: "QColor" }
|
||||
Property { name: "statusMode"; type: "int" }
|
||||
Property { name: "loadingText"; type: "string" }
|
||||
Property { name: "emptyText"; type: "string" }
|
||||
Property { name: "errorText"; type: "string" }
|
||||
Property { name: "errorButtonText"; type: "string" }
|
||||
Property { name: "loadingItem"; type: "QQmlComponent"; isPointer: true }
|
||||
Property { name: "emptyItem"; type: "QQmlComponent"; isPointer: true }
|
||||
Property { name: "errorItem"; type: "QQmlComponent"; isPointer: true }
|
||||
Signal { name: "errorClicked" }
|
||||
Property { name: "launchMode"; type: "int" }
|
||||
Property { name: "animDisabled"; type: "bool" }
|
||||
Property { name: "animationEnabled"; type: "bool" }
|
||||
Property { name: "url"; type: "string" }
|
||||
}
|
||||
Component {
|
||||
@ -3361,6 +3354,23 @@ Module {
|
||||
Property { name: "elevation"; type: "int" }
|
||||
Property { name: "radius"; type: "int" }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickPopup"
|
||||
name: "FluentUI/FluSheet 1.0"
|
||||
exports: ["FluentUI/FluSheet 1.0"]
|
||||
exportMetaObjectRevisions: [0]
|
||||
isComposite: true
|
||||
defaultProperty: "content"
|
||||
Property { name: "title"; type: "string" }
|
||||
Property { name: "header"; type: "QVariant" }
|
||||
Property { name: "size"; type: "int" }
|
||||
Property { name: "content"; type: "QObject"; isList: true; isReadonly: true }
|
||||
Method {
|
||||
name: "open"
|
||||
type: "QVariant"
|
||||
Parameter { name: "position"; type: "QVariant" }
|
||||
}
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickButton"
|
||||
name: "FluentUI/FluShortcutPicker 1.0"
|
||||
@ -3601,7 +3611,7 @@ Module {
|
||||
Property { name: "pasteText"; type: "string" }
|
||||
Property { name: "selectAllText"; type: "string" }
|
||||
Property { name: "inputItem"; type: "QVariant" }
|
||||
Property { name: "enableAnimation"; type: "bool" }
|
||||
Property { name: "animationEnabled"; type: "bool" }
|
||||
}
|
||||
Component {
|
||||
prototype: "QQuickButton"
|
||||
|
@ -5,7 +5,6 @@ typeinfo plugins.qmltypes
|
||||
|
||||
FluAcrylic 1.0 Controls/FluAcrylic.qml
|
||||
FluAppBar 1.0 Controls/FluAppBar.qml
|
||||
FluArea 1.0 Controls/FluArea.qml
|
||||
FluAutoSuggestBox 1.0 Controls/FluAutoSuggestBox.qml
|
||||
FluBadge 1.0 Controls/FluBadge.qml
|
||||
FluBreadcrumbBar 1.0 Controls/FluBreadcrumbBar.qml
|
||||
@ -30,6 +29,8 @@ FluExpander 1.0 Controls/FluExpander.qml
|
||||
FluFilledButton 1.0 Controls/FluFilledButton.qml
|
||||
FluFlipView 1.0 Controls/FluFlipView.qml
|
||||
FluFocusRectangle 1.0 Controls/FluFocusRectangle.qml
|
||||
FluFrame 1.0 Controls/FluFrame.qml
|
||||
FluGroupBox 1.0 Controls/FluGroupBox.qml
|
||||
FluIcon 1.0 Controls/FluIcon.qml
|
||||
FluIconButton 1.0 Controls/FluIconButton.qml
|
||||
FluImage 1.0 Controls/FluImage.qml
|
||||
@ -72,6 +73,7 @@ FluScrollBar 1.0 Controls/FluScrollBar.qml
|
||||
FluScrollIndicator 1.0 Controls/FluScrollIndicator.qml
|
||||
FluScrollablePage 1.0 Controls/FluScrollablePage.qml
|
||||
FluShadow 1.0 Controls/FluShadow.qml
|
||||
FluSheet 1.0 Controls/FluSheet.qml
|
||||
FluShortcutPicker 1.0 Controls/FluShortcutPicker.qml
|
||||
FluSlider 1.0 Controls/FluSlider.qml
|
||||
FluSpinBox 1.0 Controls/FluSpinBox.qml
|
||||
|
@ -107,5 +107,7 @@
|
||||
<file>FluentUI/Controls/FluEvent.qml</file>
|
||||
<file>FluentUI/Controls/FluEventBus.qml</file>
|
||||
<file>FluentUI/Controls/FluFrame.qml</file>
|
||||
<file>FluentUI/Controls/FluSheet.qml</file>
|
||||
<file>FluentUI/Controls/FluGroupBox.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@ -225,6 +225,7 @@ Rectangle{
|
||||
}
|
||||
FluIconButton{
|
||||
id:btn_maximize
|
||||
property bool hover: btn_maximize.hovered
|
||||
Layout.preferredWidth: 40
|
||||
Layout.preferredHeight: 30
|
||||
padding: 0
|
||||
@ -232,10 +233,10 @@ Rectangle{
|
||||
horizontalPadding: 0
|
||||
iconSource : d.isRestore ? FluentIcons.ChromeRestore : FluentIcons.ChromeMaximize
|
||||
color: {
|
||||
if(pressed){
|
||||
if(down){
|
||||
return maximizePressColor
|
||||
}
|
||||
return hovered ? maximizeHoverColor : maximizeNormalColor
|
||||
return btn_maximize.hover ? maximizeHoverColor : maximizeNormalColor
|
||||
}
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
visible: d.resizable && !isMac && showMaximize
|
||||
|
@ -42,6 +42,8 @@ Button {
|
||||
visible: control.activeFocus
|
||||
}
|
||||
}
|
||||
focusPolicy:Qt.TabFocus
|
||||
font:FluTextStyle.Body
|
||||
horizontalPadding:0
|
||||
verticalPadding: 0
|
||||
padding: 0
|
||||
@ -49,7 +51,6 @@ Button {
|
||||
Accessible.name: control.text
|
||||
Accessible.description: contentDescription
|
||||
Accessible.onPressAction: control.clicked()
|
||||
focusPolicy:Qt.TabFocus
|
||||
contentItem: RowLayout{
|
||||
spacing: control.textSpacing
|
||||
layoutDirection:control.textRight ? Qt.LeftToRight : Qt.RightToLeft
|
||||
@ -134,6 +135,7 @@ Button {
|
||||
text: control.text
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
visible: text !== ""
|
||||
font: control.font
|
||||
}
|
||||
}
|
||||
}
|
||||
|
39
src/Qt6/imports/FluentUI/Controls/FluGroupBox.qml
Normal file
39
src/Qt6/imports/FluentUI/Controls/FluGroupBox.qml
Normal file
@ -0,0 +1,39 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Window
|
||||
import QtQuick.Controls.impl
|
||||
import QtQuick.Templates as T
|
||||
import FluentUI
|
||||
|
||||
T.GroupBox {
|
||||
id: control
|
||||
property int borderWidth : 1
|
||||
property color borderColor : FluTheme.dark ? Window.active ? Qt.rgba(55/255,55/255,55/255,1):Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(226/255,229/255,234/255,1)
|
||||
property color color: FluTheme.dark ? Window.active ? Qt.rgba(38/255,44/255,54/255,1) : Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1)
|
||||
property int radius: 4
|
||||
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
|
||||
contentWidth + leftPadding + rightPadding,
|
||||
implicitLabelWidth + leftPadding + rightPadding)
|
||||
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
||||
contentHeight + topPadding + bottomPadding)
|
||||
spacing: 6
|
||||
padding: 12
|
||||
font: FluTextStyle.Body
|
||||
topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
|
||||
label: FluText {
|
||||
width: control.availableWidth
|
||||
text: control.title
|
||||
font: FluTextStyle.BodyStrong
|
||||
elide: Text.ElideRight
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
background: Rectangle {
|
||||
y: control.topPadding - control.bottomPadding
|
||||
width: parent.width
|
||||
height: parent.height - control.topPadding + control.bottomPadding
|
||||
radius: control.radius
|
||||
border.color: control.borderColor
|
||||
border.width: control.borderWidth
|
||||
color: control.color
|
||||
}
|
||||
}
|
@ -16,7 +16,7 @@ Page {
|
||||
transform: Translate {
|
||||
y: control.visible ? 0 : 80
|
||||
Behavior on y{
|
||||
enabled: control.animationEnabled
|
||||
enabled: control.animationEnabled && FluTheme.animationEnabled
|
||||
NumberAnimation{
|
||||
duration: 167
|
||||
easing.type: Easing.OutCubic
|
||||
@ -24,21 +24,27 @@ Page {
|
||||
}
|
||||
}
|
||||
Behavior on opacity {
|
||||
enabled: control.animationEnabled
|
||||
enabled: control.animationEnabled && FluTheme.animationEnabled
|
||||
NumberAnimation{
|
||||
duration: 83
|
||||
}
|
||||
}
|
||||
background: Item{}
|
||||
header: Item{
|
||||
implicitHeight: 40
|
||||
FluText{
|
||||
id:text_title
|
||||
text: control.title
|
||||
font: FluTextStyle.Title
|
||||
anchors{
|
||||
left: parent.left
|
||||
leftMargin: 5
|
||||
header: FluLoader{
|
||||
sourceComponent: control.title === "" ? undefined : com_header
|
||||
}
|
||||
Component{
|
||||
id: com_header
|
||||
Item{
|
||||
implicitHeight: 40
|
||||
FluText{
|
||||
id:text_title
|
||||
text: control.title
|
||||
font: FluTextStyle.Title
|
||||
anchors{
|
||||
left: parent.left
|
||||
leftMargin: 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -89,6 +89,7 @@ Button {
|
||||
text: control.text
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
font: control.font
|
||||
visible: text !== ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import FluentUI
|
||||
|
||||
Item {
|
||||
//高性能阴影!!!比DropShadow阴影性能高出数倍!!!
|
||||
property color color: FluTheme.dark ? "#FFFFFF" : "#999999"
|
||||
property color color: FluTheme.dark ? "#AAAAAA" : "#999999"
|
||||
property int elevation: 6
|
||||
property int radius: 4
|
||||
id:control
|
||||
|
210
src/Qt6/imports/FluentUI/Controls/FluSheet.qml
Normal file
210
src/Qt6/imports/FluentUI/Controls/FluSheet.qml
Normal file
@ -0,0 +1,210 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Window
|
||||
import FluentUI
|
||||
|
||||
Popup {
|
||||
id: control
|
||||
default property alias content : container.contentData
|
||||
property string title
|
||||
property var header : Item{
|
||||
implicitHeight: 40
|
||||
FluIconButton{
|
||||
id: btn_close
|
||||
iconSource: FluentIcons.Clear
|
||||
iconSize: 15
|
||||
verticalPadding: 6
|
||||
horizontalPadding: 6
|
||||
width: 30
|
||||
height: 30
|
||||
anchors{
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: parent.left
|
||||
leftMargin: 5
|
||||
}
|
||||
onClicked: {
|
||||
control.visible = false
|
||||
}
|
||||
}
|
||||
FluText{
|
||||
id:text_title
|
||||
text: control.title
|
||||
font: FluTextStyle.Subtitle
|
||||
anchors{
|
||||
verticalCenter: parent.verticalCenter
|
||||
left: btn_close.right
|
||||
leftMargin: 5
|
||||
right: parent.right
|
||||
rightMargin: 5
|
||||
}
|
||||
}
|
||||
}
|
||||
property int size: 278
|
||||
|
||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||
padding: 0
|
||||
modal:true
|
||||
parent: Overlay.overlay
|
||||
enter: {
|
||||
if(d.position === FluSheetType.Top){
|
||||
return enter_top
|
||||
}else if(d.position === FluSheetType.Left){
|
||||
return enter_left
|
||||
}else if(d.position === FluSheetType.Right){
|
||||
return enter_right
|
||||
}else{
|
||||
return enter_bottom
|
||||
}
|
||||
}
|
||||
exit: {
|
||||
if(d.position === FluSheetType.Top){
|
||||
return exit_top
|
||||
}else if(d.position === FluSheetType.Left){
|
||||
return exit_left
|
||||
}else if(d.position === FluSheetType.Right){
|
||||
return exit_right
|
||||
}else{
|
||||
return exit_bottom
|
||||
}
|
||||
}
|
||||
Item {
|
||||
id: d
|
||||
property var win: Window.window
|
||||
onWinChanged: {
|
||||
if(win instanceof FluWindow){
|
||||
win.setHitTestVisible(container)
|
||||
}
|
||||
}
|
||||
property int position: FluSheetType.Bottom
|
||||
property int parentHeight: {
|
||||
if(control.parent){
|
||||
return control.parent.height
|
||||
}
|
||||
return control.height
|
||||
}
|
||||
property int parentWidth: {
|
||||
if(control.parent){
|
||||
return control.parent.width
|
||||
}
|
||||
return control.width
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:enter_right
|
||||
onRunningChanged: {
|
||||
if(!running){
|
||||
control.x = Qt.binding(function(){return d.parentWidth - control.width})
|
||||
}
|
||||
}
|
||||
NumberAnimation{
|
||||
property: "x"
|
||||
duration: 167
|
||||
from: d.parentWidth
|
||||
to: d.parentWidth - control.width
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:exit_right
|
||||
NumberAnimation{
|
||||
property: "x"
|
||||
duration: 167
|
||||
from: d.parentWidth - control.width
|
||||
to: d.parentWidth
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:enter_left
|
||||
NumberAnimation{
|
||||
property: "x"
|
||||
duration: 167
|
||||
from: -control.width
|
||||
to: 0
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:exit_left
|
||||
NumberAnimation{
|
||||
property: "x"
|
||||
duration: 167
|
||||
from: 0
|
||||
to: -control.width
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:enter_top
|
||||
NumberAnimation{
|
||||
property: "y"
|
||||
duration: 167
|
||||
from: -control.height
|
||||
to: 0
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:exit_top
|
||||
NumberAnimation{
|
||||
property: "y"
|
||||
duration: 167
|
||||
from: 0
|
||||
to: -control.height
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:enter_bottom
|
||||
onRunningChanged: {
|
||||
if(!running){
|
||||
control.y = Qt.binding(function(){return d.parentHeight - control.height})
|
||||
}
|
||||
}
|
||||
NumberAnimation{
|
||||
property: "y"
|
||||
duration: 167
|
||||
from: d.parentHeight
|
||||
to: d.parentHeight - control.height
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
Transition {
|
||||
id:exit_bottom
|
||||
NumberAnimation{
|
||||
property: "y"
|
||||
duration: 167
|
||||
from: d.parentHeight - control.height
|
||||
to: d.parentHeight
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
background: Rectangle {
|
||||
FluShadow{
|
||||
radius: 0
|
||||
}
|
||||
border.color: FluTheme.dark ? Window.active ? Qt.rgba(55/255,55/255,55/255,1):Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(226/255,229/255,234/255,1)
|
||||
color: FluTheme.dark ? Window.active ? Qt.rgba(38/255,44/255,54/255,1) : Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1)
|
||||
}
|
||||
Page{
|
||||
id: container
|
||||
anchors.fill: parent
|
||||
header: control.header
|
||||
background: Item{}
|
||||
}
|
||||
function open(position = FluSheetType.Bottom){
|
||||
control.x = 0
|
||||
control.y = 0
|
||||
|
||||
d.position = position
|
||||
if(d.position === FluSheetType.Top || d.position === FluSheetType.Bottom){
|
||||
control.width = Qt.binding(function(){return d.parentWidth})
|
||||
control.height = size
|
||||
}else{
|
||||
control.width = size
|
||||
control.height = Qt.binding(function(){return d.parentHeight})
|
||||
}
|
||||
control.visible = true
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user