建设一个购物网站需要多少钱,阿里云服务器 wordpress,网站开发公司地址,网站开发外包业务怎么接目录
桌面版#xff08;win端#xff09;
移动端 下面我们用更有挑战性例子来使用Qt控件#xff0c;将创建一个简单的图像查看器。
桌面版#xff08;win端#xff09;
程序主要由四个主要区域组成#xff0c;如下所示。菜单栏、工具栏和状态栏#xff0c;通常由控件…目录
桌面版win端
移动端 下面我们用更有挑战性例子来使用Qt控件将创建一个简单的图像查看器。
桌面版win端
程序主要由四个主要区域组成如下所示。菜单栏、工具栏和状态栏通常由控件的实例填充而内容区域是窗口子项所在的位置。 原书作者(应该创建Qt Quick项目但是不影响我们使用Qt Quick 2 UI项目 由于我们面向桌面因此我们强制使用 Fusion 样式。这可以通过配置文件、环境变量、命令行参数或在C代码中以编程方式完成。我们采用后一种方式将以下行添加到 main.cpp QQuickStyle::setStyle(Fusion); import QtQuick 2.12
import QtQuick.Window 2.12
import Qt.labs.platform 1.0
import QtQuick.Dialogs 1.0
import QtQuick.Controls 2.4
import QtQuick.Controls.Material 2.12ApplicationWindow
{visible: trueid:windowwidth: 640height: 480background: Rectangle{color:darkGray}//创建一个ToolBar当点击的时候会相应咱们创建的对话框打开header:ToolBar{anchors.fill:parentToolButton{text: qsTr(open)icon.name: open pictrueonClicked: fileOpenDialog.open()}}//创建两个MenuBar当点击的时候会相应咱们创建的对话框打开或者打开关于这个软件对话框menuBar:MenuBar{Menu{title:qsTr(file)MenuItem{text: qsTr(open..)icon.name: document-openicon.source: documentopen.pngonTriggered: fileOpenDialog.open()}}Menu{title:qsTr(Help)MenuItem{text: qsTr(About)onTriggered: aboutDialog.open()}}}//将打开的图片设置成缓存图像Image {id: imageanchors.fill: parentfillMode: Image.PreserveAspectFitasynchronous: truecache: false}//图像文件打开窗口FileDialog{id:fileOpenDialogtitle:Select Image file //获取文档写的权限folder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation)nameFilters: [Image files (*.png *.jpeg *.jpg),]onAccepted: {image.source fileOpenDialog.fileUrl}}//关于这个软件信息窗口Dialog{id:aboutDialogtitle: qsTr(about)Label{anchors.fill: parenttext: qsTr(QML Image Viewer\nA part of the QmlBook\nhttp://qmlbook.org)horizontalAlignment: Text.AlignHCenter}standardButtons: StandardButton.Ok} 移动端
在原本基础上添加下面代码就可以 Drawer {id: drawerwidth: Math.min(window.width, window.height) / 3 * 2height: window.heightListView {focus: truecurrentIndex: -1anchors.fill: parentdelegate: ItemDelegate {width: parent.widthtext: model.texthighlighted: ListView.isCurrentItemonClicked: {drawer.close()model.triggered()}}model: ListModel {ListElement {text: qsTr(Open...)triggered: function() { fileOpenDialog.open(); }}ListElement {text: qsTr(About...)triggered: function() { aboutDialog.open(); }}}ScrollIndicator.vertical: ScrollIndicator { }}}header: ToolBar {// 桌面端无作用Material.background: Material.OrangeToolButton {id: menuButtonanchors.left: parent.leftanchors.verticalCenter: parent.verticalCentericon.source: baseline-menu-24px.svgonClicked: drawer.open()}Label {anchors.centerIn: parenttext: Image Viewerfont.pixelSize: 20elide: Label.ElideRight}} 代码的详细解释 创建了一个具有两个选项的列表视图ListView focus: true这将使ListView获得焦点这意味着当用户首次打开该界面时ListView将成为用户可以直接与之交互的第一个元素。 currentIndex: -1这将设置当前选定的列表项的索引为-1这意味着在开始时没有任何项目被选中。 anchors.fill: parent这将使ListView填充其父元素的所有可用空间使得列表视图占据整个界面。 delegate: ItemDelegate这是ListView的代理对象它负责创建列表中的每个元素。在这个例子中它是一个ItemDelegate对象用于显示每个列表项的内容。 width: parent.width这将每个列表项的宽度设置为父元素的宽度使得每个列表项占据整个列表视图的宽度。text: model.text这将显示模型中每个元素的文本。highlighted: ListView.isCurrentItem当一个列表项成为当前选定的项时这个列表项会被高亮显示。onClicked:当用户点击一个列表项时这个列表项将被选中然后关闭Drawer并执行模型中指定的函数。 model: ListModel这是ListView的数据模型它包含了一组ListElement每个ListElement代表一个列表项。 在这个例子中数据模型有两个元素 Open...点击时会打开一个文件打开对话框fileOpenDialog.open()。About...点击时会打开一个关于对话框aboutDialog.open()。 ScrollIndicator.vertical: ScrollIndicator { }这是垂直滚动指示器当列表视图的内容超过视窗时滚动指示器会显示出来。 总的来说这段代码创建了一个具有两个选项的列表视图用户可以通过点击来选择一个选项并根据选项的内容执行不同的操作。