我遇到了这个:
ListView {
id: listView
model: ["Lorem","Ipsum"]
delegate: Item {
height: 20
Text {
z: 2
text: modelData
anchors.fill: parent
}
Rectangle {
z: 1
color: "red"
// this does not work:
anchors.fill: parent
// this works, but I have mixed feelings about it:
// height: 20; width: listView.width
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,显然,anchors不在委托的子项目中工作(在这种情况下,Rectangle根本不显示).我想了解这背后的机制.另外,我想问一下处理这种情况的首选方法是什么?谢谢!
我想改变Button的字体大小.我用过这里的解决方案
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
Rectangle {
id: container
width: 800
height: 800
Button {
id: cmdQuit
text: qsTr("Quit")
width: 100
height: 100
style: ButtonStyle {
label: Text {
renderType: Text.NativeRendering
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pointSize: 20
text: cmdQuit.text
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我这样做时,我失去了Android原生外观,并获得了后备基础外观.有没有办法在不丢失Android上的原生样式的情况下更改字体大小?
我想改变单个按钮的外观,并希望其他按钮保持不变.我正在使用Qt5(C++)和QML.我不想要一个涉及复制整个QtQuick/Controls/Styles/Android文件夹的解决方案 - 我可以自己做但是很糟糕
如何使用javascript在QML中创建这样的东西?
其实我知道如何在QML中创建矩形但是想要做这样的事情.QML画布可以是任何大小,但是无论何时加载QML部分,都会生成具有随机大小和颜色的多个正方形而不重叠.当我尝试这样做时,矩形以列表形式生成.我是一个Web开发人员(ruby on rails oriented)但是对这些javascript的东西很新.任何帮助将不胜感激.
对于项目,我需要在运行时从C++创建QML组件.
我的一般架构如下:
PROJECT1:
项目2:
我想要做的是将Engine.cpp实例化为QML对象(可能因为我在Plugin类中注册它并使其可用于Project2)然后从Engine创建动态CustObject实例(它们也被Project2注册使用) .最后我希望如果我写:
ApplicationWindow{
id: window
visible: true
Engine{
id: eng1
CustObject{
id: custObj1
}
}
}
Run Code Online (Sandbox Code Playgroud)
这与编写类似的内容相同
ApplicationWindow {
id: window
visible: true
Button {
text: "add new child"
onClicked: {
console.log("QML: Number children before", eng1.children.length);
eng1.addNewChildren();
console.log("QML: Number children after", eng1.children.length);
}
}
Engine{
id: eng1
onChildrenChanged: console.log("Changed")
}
}
Run Code Online (Sandbox Code Playgroud)
我应该看到孩子的数量增加,并且应该启动从eng1开始的onChildrenChanged.
问题是既没有增加子项数,也没有启动onChildrenChanged信号.
我还有另外一个问题,为了在父类中添加一个子项,在我的情况下,我使用了QQMLComponent类的函数QQmlComponent(QQmlEngine*engine,const QUrl&url,QObject*parent = 0).但我找不到将CustObject类转换为QUrl的方法,因为它不是.qml文件.
因此,我首先尝试添加一个名为Dummy.qml的虚拟qml对象,而不是CustObject对象.Dummy.qml看起来像这样:
import QtQuick 2.0
Item {
property int nb: 1 …Run Code Online (Sandbox Code Playgroud) 我的用户界面包含一个带有
horizontalAlignment: Text.AlignJustify
maximumLineCount: 5
wrapMode: TextEdit.WordWrap
elide: Text.ElideRight
Run Code Online (Sandbox Code Playgroud)
当文本不适合时,最后一行应以“ ... MORE”结尾,其中“ MORE”应可突出显示。这可能是一个单独的“文本”字段,在该字段中,可见性由是否忽略文本来控制。
但是,如何检测何时删除文本?
我开始在Qt Creator中编写一个NumberAnimation声明,并在自动完成框中得到了一些东西.其中一个是"NumberAnimation with target".这是否意味着有这样的语法:
NumberAnimation with foo {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我使用Qt Quick Controls 2时出现弹出窗口大小行为的问题.当我将ListView作为弹出窗口的contentItem时,弹出窗口大小为零.一些重现问题的示例代码:
import QtQuick 2.4
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
ApplicationWindow {
id: window
visible: true
width: 800
height: 600
Button {
text: "open popup"
onClicked: popup.open()
}
Popup {
id: popup
x: (window.width - width) / 2
y: window.height / 6
width: contentWidth
height: contentHeight
contentItem: ListView {
width: contentWidth
height: contentHeight
model: ListModel {
ListElement {
name: "Apple"
cost: 2.45
}
ListElement {
name: "Orange"
cost: 3.25
}
ListElement {
name: "Banana"
cost: 1.95
} …Run Code Online (Sandbox Code Playgroud) 我想缩放Label像这样的字体大小:
Label {
font.size: font.size*0.8
}
Run Code Online (Sandbox Code Playgroud)
当然这会创建一个绑定循环.有没有办法在不创建隐藏Label元素的情况下执行此操作?
Label {
id: hiddenLabel
}
Label {
font.size: hiddenLabel.font.size*0.8
}
Run Code Online (Sandbox Code Playgroud)
缩放整个标签不是最佳的,因为文本质量下降:
Label {
scale: 0.8
}
Run Code Online (Sandbox Code Playgroud)
问候,
我正在尝试一些看似简单的事情,但失败了:内联定义一个简单的文本格式设置组件,然后使用不同的文本多次实例化它。这是代码
Item {
.
.
.
Component {
id: favButtonLabelText
Text {
text: "Blah!"
color: StyleSingleton.xNavPrimaryText
font.family: StyleSingleton.xNavTextFont
font.pointSize: 28
}
}
.
.
.
Loader { sourceComponent: favButtonLabelText; text: "Diameter" }
Run Code Online (Sandbox Code Playgroud)
在加载程序行,text属性无效。试图在组件上定义属性或别名的尝试被拒绝,“组件对象无法声明新属性”。
我在文档中找到的唯一示例显示了重写内联组件中定义的x属性Rectangle。在我看来,覆盖元素的text属性Text是类似的。
我怎样才能做到这一点?