- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个 qml UI,就像具有响应式设计的电报一样。在电报中,当您有足够的空间时,聊天区域会显示在右侧,如果空间不足,聊天区域和其他详细信息会显示为堆栈 View 。
我有一个 ListView 和一个用于向数据库添加联系人的表单。如果窗口足够大,我想在表单右侧显示 ListView
或者如果没有可用空间 ListView 和表单显示为堆栈 View
就像电报应用程序一样
如何做到这一点?
这是我的 qml 文件:
ApplicationWindow {
id: window
visible: true
width: 300
height: 480
ColumnLayout {
id: rowLayout
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: 5
spacing: 10
Text { text: qsTr("FirstName") }
TextField { id: firstnameField }
Text { text: qsTr("LastName") }
TextField { id: lastnameField }
Text { text: qsTr("Mobile") }
TextField { id: mobileField }
Button {
text: qsTr("Add Data")
onClicked: {
database.insertIntoTable(firstnameField.text, lastnameField.text, mobileField.text)
myModel.updateModel()
}
}
Button {
text: "Remove"
onClicked: contextMenu.open();
}
}
ListView {
id: tableView
anchors.top: rowLayout.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.margins: 5
anchors.topMargin: 30
model: myModel
Row {
id: rl
x:0
y: -30
Text { text: "FirstName"; font.bold: true; width: 120; }
Text { text: "LastName"; font.bold: true; width: 120; }
Text { text: "Mobile"; font.bold: true; width: 120; }
spacing: 10
}
delegate: RowLayout {
id: rowlayout
spacing: 10
MouseArea {
id: mouseArea
anchors.fill: parent
hoverEnabled: true
onClicked: {
tableView.currentIndex = index
}
}
Rectangle {
id: rc;
anchors.fill: parent
color: mouseArea.containsMouse ? "#55CCccCC" : "#00ffFFff"
}
Rectangle {
id: rowLayoutBackground
anchors.fill: parent
color: (tableView.currentIndex == index) ? "#55CCccCC" : "#00ffFFff"
}
Column { Text { text: firstname; width: 120; } }
Column { Text { text: lastname; width: 120; } }
Column { Text { text: mobile; width: 120; } }
}
}
Menu {
id: contextMenu
MenuItem {
text: qsTr("Remove")
onTriggered: {
dialogDelete.open()
}
}
}
MessageDialog {
id: dialogDelete
title: qsTr("Remove record")
text: qsTr("Confirm the deletation of log entries")
icon: StandardIcon.Warning
standardButtons: StandardButton.Ok | StandardButton.Cancel
onAccepted: {
database.removeRecord(myModel.getId(tableView.currentIndex))
myModel.updateModel()
}
}
}
最佳答案
这是通过 QML 显示响应式布局的演示 State .
import QtQuick 2.6
import QtQuick.Window 2.2
import QtQuick.Controls 2.3
import QtQuick.Controls 1.4
Window {
id: window
visible: true
readonly property int responsiveWidth: 500
width: 300; height: 500
SwipeView {
id: swipeView
currentIndex: 1
anchors.fill: parent
states: [
State {
when: window.width >= responsiveWidth
ParentChange { target: contacts; parent: contactsContainer; }
ParentChange { target: chat; parent: chatContainer; }
PropertyChanges { target: indicator; visible: hide }
}
]
Item {
Rectangle {
id: contacts
anchors.fill: parent
color: "lightblue"; border.width: 5; border.color: "white"
}
}
Item {
Rectangle{
id: chat
anchors.fill: parent
color: "lightgray"; border.width: 5; border.color: "white"
}
}
}
PageIndicator {
id: indicator
count: swipeView.count
currentIndex: swipeView.currentIndex
anchors.bottom: swipeView.bottom
anchors.bottomMargin: 10
anchors.horizontalCenter: swipeView.horizontalCenter
}
Row {
id: splitView
anchors.fill: parent
Item {
id: contactsContainer
width: parent.width / 2; height: parent.height
}
Item {
id: chatContainer
width: parent.width / 2; height: parent.height
}
}
}
最好能提供一个可运行的示例代码来解释问题,所以我简化了你的以显示响应式布局的结果。
完整来源 Github
更新:
以下代码已更新为 SwipeView版本。但是做响应式布局的思路一直是用STM来控制。我不熟悉 SwipeView
,所以如果您发现代码有任何问题,请添加评论。
关于qt - 使用 Qt Quick 和 qml 创建一个类似电报的响应式用户界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49745226/
我正在阅读 Youtube 上的 Kubernetes 教程,发现以下 UI 演示了 Kubernetes 集群的 pod 和服务安排。如何在我的 Kubernetes 设置中安装此 UI? 最佳答案
这只是一个快速的(我希望)。 我最近访问了 jquery ui 对话框页面,查看在对话框中使用表单 http://jqueryui.com/dialog/#modal-form我注意到一些我以前没有见
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我想用 Java 为一个程序创建一个用户界面,让用户能够构建一棵节点树,每个节点执行一项特定的任务。该程序的界面与 Softimage Ice 非常相似,您可以通过单击 http://vimeo.co
下面是我在 SwiftUI 中创建 View 的代码。我要定位我的 欢迎按钮 到屏幕底部,如下所示。 struct welcomeViewControllerView: View { va
我目前有一个文本编辑器,我希望能够像这样在笔记应用程序中添加文本格式: 我试过 UITextView.allowsEditingTextAttributes = true但它似乎没有用。 任何想法将不
我不知道如何使用HDFS连接我的网站(我什至不确定是否有可能)。 我的网站基于PHP。我想存储有人点击我的网站的区域,如何将我的PHP与HDFS连接起来? 是否涉及任何插件?如果我希望这些信息被实时存
我正在寻找用 javascript 编程的新方法。我的目标是创建像 GMail 这样的 javascript 应用程序。我试过 GWT,但它接缝太复杂,而且代码也不时尚。 我发现 MVC 模式是一种很
我有多个渐变作为我的应用程序的主题。当渐变(存储在变量中)是特定的时,我想要一个 bool 值变为真。但是,我不断收到错误消息: "Binary operator '==' cannot be app
我有一个有很多类别的测验应用程序: 类别 1 列出第 1 项 列出第 2 项 类别 3 第 4 类 第 5 类 列出第 1 项 列出第 2 项 列出第 3 项 所以类别要么是指一般的不可选择的类别,即
如果我单击仅搜索“2018”的搜索按钮,但如果我在搜索“2018 歌曲”的电脑上按回车按钮,我想搜索“2018”,如果我在电脑上按回车按钮,我怎么能使用 Autocomplete | jQuery U
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我正在尝试为患有轻度认知障碍的祖母创建一个安卓平板电脑应用程序。该应用程序的功能之一是智能调度程序/提醒。例如:该应用程序会说“您服用红色药丸了吗?”是或否。如果没有或没有回复,则会向我的手机发送一条
有没有办法确保我的 Android UI 在不同手机上按预期显示? 最佳答案 遍历 developers guide on supporting multiple screens .它为您提供有关该主
我正在为 iPad 和 iPhone 创建一个通用应用程序。我有一个 UITextField,我希望用户在其中输入歌曲的名称或在他们的 iTunes 库中找到的任何声音媒体文件。我的问题不是关于查询图
这个问题在这里已经有了答案: Making a Chess Game with jQuery UI. I have used Draggable, but i need to make them n
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我想从选择器中获取所选项目以更新 Firebase 数据库中的一些数据,但是当我使用 onTapGesture 时不起作用 注意:选择器中的项目是字符串 我的代码: Picke
我需要我的应用程序在启动时配置后端,这是执行此操作的函数: // Initializes Amplify final func configureAmplify() async { do {
我有这个 Web 应用程序,其中一个模块使用了过多的 ui:include。 前任。 页面 1.0 包括 --> page1.1 包括页面 2.0 包括 --> 页面 2.1 页面 1.0 包括 --
我是一名优秀的程序员,十分优秀!