import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 1.2 import Qt.labs.qmlmodels 1.0 Window { visible: true width: 400 height: 300 Button { text: "Hello World" font.pixelSize: Math.round(window.width / 20) Binding { target: font property: "pixelSize" value: Math.round(window.width / 20) } } } 程序有什么问题
时间: 2024-02-14 08:27:56 浏览: 106
有问题的QT程序,请大家帮忙看一下吧
在您提供的代码中,存在两个问题:
1. 导入的Qt Quick和Qt Quick Controls版本不匹配:您导入的版本是Qt Quick 2.12和Qt Quick Controls 1.2,但是您使用的是Binding语法,该语法在Qt Quick Controls 2中引入。因此,您需要将导入的版本改为Qt Quick 2.15和Qt Quick Controls 2.15。
2. 绑定的目标对象错误:在Binding中,将目标(target)设置为font是不正确的。正确的目标应该是按钮本身。因此,您需要将Binding中的target更改为Button。
以下是经过修正的代码示例:
```qml
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Window 2.15
Window {
visible: true
width: 400
height: 300
Button {
id: myButton
text: "Hello World"
font.pixelSize: Math.round(parent.width / 20)
Binding {
target: myButton
property: "font.pixelSize"
value: Math.round(parent.width / 20)
}
}
}
```
在修正后的代码中,我们将导入的Qt Quick和Qt Quick Controls版本更新为2.15,并将Binding的目标(target)更改为按钮本身(myButton)。同时,我们还将按钮文本字体大小计算中的`window.width`更改为`parent.width`,以确保使用窗口的宽度来进行计算。
请注意,以上修正适用于Qt Quick Controls 2版本。如果您使用的是其他版本的Qt或不同的控件库,请相应地进行适应性修改。
阅读全文