qt - QML ScrollView 不允许滚动长文本
问题描述
我有以下滚动视图中长富文本的最小示例。问题是滚动视图不允许滚动到文本的底部。
import QtQuick 2.14
import QtQuick.Controls 2.14
Item {
anchors.fill: parent
Rectangle {
anchors.centerIn: parent
width: 800
height: 600
color: "lightgrey"
ScrollView {
anchors.fill: parent
contentWidth: width - 5
contentHeight: descriptionText.height
clip: true
ScrollBar.vertical.policy: contentHeight > height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
Text {
id: descriptionText
width: parent.width - 5
textFormat: Text.RichText
wrapMode: Text.WordWrap
font.pointSize: 12
text: `<p>
Liberis velum, tanquam brevis mineralis. Domesticus tumultumque acceleratrix imperiums gluten est. Heu, brevis
cannabis! Nunquam locus cursus. Eheu, magnum zirbus! Rector pius acipenser est. Devirginatos credere, tanquam noster
tabes. Fortis amors ducunt ad finis. Ubi est domesticus vita? Mirabilis frondators ducunt ad hibrida. Medicina,
gabalium, et absolutio. Historia noceres, tanquam peritus decor. Mortems velum, tanquam flavum zirbus. Studere una
ducunt ad dexter nutrix. Cum mineralis cadunt, omnes absolutioes contactus superbus, secundus exemplares. Ubi est
castus racana? Pol, a bene fermium, magnum lanista!Acipensers messis!
</p>
<ul>
<li>Fatalis verpas ducunt ad racana.</li>
<li>Ubi est regius exsul?</li>
<li>Noster contencio aegre imitaris amor est.</li>
<li>Ubi est secundus omnia?</li>
<li>Parmas sunt resistentias de regius uria.</li>
<li>Fidelis, festus brodiums tandem talem de flavum, domesticus quadra.</li>
</ul>
<p>
Bursa noceres, tanquam flavum nixus. Gratis sectams ducunt ad zelus. Pol, idoleum! Cum quadra cadunt, omnes exsules
anhelare azureus, castus orgiaes. Sunt valebates consumere varius, brevis caculaes. Canis velox fides est. Nunquam
imitari nomen. Cur onus favere? Festus xiphiass ducunt ad index. Heuretes tolerares, tanquam teres sensorem. Cur
buxum velum? Rusticus castors ducunt ad plasmator. Ubi est magnum brabeuta? Calcaria de bassus liberi, gratia imber!
Primus lapsus mechanice tractares zelus est. A falsis, turpis nobilis fides. A falsis, era barbatus abactus. Heu,
rusticus bromium! Spatiis observare in antenna! Est fatalis extum, cesaris. Nunquam captis nomen. Tatas nocere! Sunt
nutrixes demitto regius, lotus dominaes. Assimilatios sunt vigils de clemens glos. Est castus clabulare, cesaris.
</p>
<p>
Assimilatio de neuter fuga, gratia animalis! Cum lactea observare, omnes indictioes examinare azureus, germanus
nixes. Ubi est grandis ausus? Clemens, fidelis rationes sapienter visum de domesticus, peritus itineris tramitem.
Detrius de emeritis mens, demitto spatii! Dexter, ferox brabeutas satis dignus de mirabilis, fidelis particula. Cur
exsul manducare? Sunt compateres pugna velox, raptus planetaes. Cum adelphis experimentum, omnes eraes aperto
azureus, gratis verpaes. Cum rumor ridetis, omnes brodiumes captis peritus, albus galataees.
</p>
<p>
Galataes resistere! Audax, emeritis frondators grauiter reperire de lotus, barbatus ionicis tormento.
Capio de varius bubo, acquirere fluctus! Salvus, raptus imbers sed mire manifestum de germanus, superbus racana.
Cum itineris tramitem nocere, omnes peses demitto pius, talis detriuses!
</p>
<p>
Toruss sunt nuclear vexatum iaceres de festus fermium.
</p>`
}
}
}
}
我已经打印了滚动视图的height
andcontentHeight
并且 contentHeight 大于height
. 这不是可滚动的要求吗?
解决方案
我更改了您的代码中的某些内容并为您更正了该问题:首先,您的问题出在文本中,添加您的文本,您qsTr
还应该设置focus: true
。
而且我删除width: parent.width - 5
了这个东西给你带来了这个问题,而不是我添加 anchors.fill: parent
import QtQuick 2.14
import QtQuick.Controls 2.14
Item {
anchors.fill: parent
Rectangle {
anchors.centerIn: parent
width: 800
height: 600
color: "lightgrey"
ScrollView {
anchors.fill: parent
contentWidth: width - 5
contentHeight: descriptionText.height
clip: true
ScrollBar.vertical.policy: contentHeight > height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
Text {
id: input
anchors.fill: parent
focus: true
textFormat: Text.RichText
wrapMode: Text.WordWrap
font.pointSize: 12
text: qsTr("
<p>
Liberis velum, tanquam brevis mineralis. Domesticus tumultumque acceleratrix imperiums gluten est. Heu, brevis
cannabis! Nunquam locus cursus. Eheu, magnum zirbus! Rector pius acipenser est. Devirginatos credere, tanquam noster
tabes. Fortis amors ducunt ad finis. Ubi est domesticus vita? Mirabilis frondators ducunt ad hibrida. Medicina,
gabalium, et absolutio. Historia noceres, tanquam peritus decor. Mortems velum, tanquam flavum zirbus. Studere una
ducunt ad dexter nutrix. Cum mineralis cadunt, omnes absolutioes contactus superbus, secundus exemplares. Ubi est
castus racana? Pol, a bene fermium, magnum lanista!Acipensers messis!
</p>
<ul>
<li>Fatalis verpas ducunt ad racana.</li>
<li>Ubi est regius exsul?</li>
<li>Noster contencio aegre imitaris amor est.</li>
<li>Ubi est secundus omnia?</li>
<li>Parmas sunt resistentias de regius uria.</li>
<li>Fidelis, festus brodiums tandem talem de flavum, domesticus quadra.</li>
</ul>
<p>
Bursa noceres, tanquam flavum nixus. Gratis sectams ducunt ad zelus. Pol, idoleum! Cum quadra cadunt, omnes exsules
anhelare azureus, castus orgiaes. Sunt valebates consumere varius, brevis caculaes. Canis velox fides est. Nunquam
imitari nomen. Cur onus favere? Festus xiphiass ducunt ad index. Heuretes tolerares, tanquam teres sensorem. Cur
buxum velum? Rusticus castors ducunt ad plasmator. Ubi est magnum brabeuta? Calcaria de bassus liberi, gratia imber!
Primus lapsus mechanice tractares zelus est. A falsis, turpis nobilis fides. A falsis, era barbatus abactus. Heu,
rusticus bromium! Spatiis observare in antenna! Est fatalis extum, cesaris. Nunquam captis nomen. Tatas nocere! Sunt
nutrixes demitto regius, lotus dominaes. Assimilatios sunt vigils de clemens glos. Est castus clabulare, cesaris.
</p>
<p>
Assimilatio de neuter fuga, gratia animalis! Cum lactea observare, omnes indictioes examinare azureus, germanus
nixes. Ubi est grandis ausus? Clemens, fidelis rationes sapienter visum de domesticus, peritus itineris tramitem.
Detrius de emeritis mens, demitto spatii! Dexter, ferox brabeutas satis dignus de mirabilis, fidelis particula. Cur
exsul manducare? Sunt compateres pugna velox, raptus planetaes. Cum adelphis experimentum, omnes eraes aperto
azureus, gratis verpaes. Cum rumor ridetis, omnes brodiumes captis peritus, albus galataees.
</p>
<p>
Galataes resistere! Audax, emeritis frondators grauiter reperire de lotus, barbatus ionicis tormento.
Capio de varius bubo, acquirere fluctus! Salvus, raptus imbers sed mire manifestum de germanus, superbus racana.
Cum itineris tramitem nocere, omnes peses demitto pius, talis detriuses!
</p>
<p>
Toruss sunt nuclear vexatum iaceres de festus fermium.
</p>")
}
}
}
}
推荐阅读
- react-native - 反应原生动画不透明度和位置
- wordpress - 在新的 Wordpress 安装下重定向旧的子目录页面请求
- python - 如何使用 Matplotlib 或 Seaborn 根据不同组指定图例
- r - 汇总函数 dplyr 的持续错误
- powershell - Powershell Export-csv 仅导出标头
- google-analytics - 谷歌分析用户限制
- ruby-on-rails - 安装后初始化 madmin gem 时出错
- copy - 将 Dynamics CRM on Premise 复制到另一个实例
- python - 不反映评论中的当前用户
- python - 为什么我不断收到锁定文件错误安装 django 或 django 包?