简体   繁体   English

文本区域溢出时QML scrollView滚动条不出现

[英]QML scrollView scroll bar does not appear when text area overflows

here is what i did i have a text area inside a scrollview and a button at the bottom.这是我所做的,我在滚动视图中有一个文本区域,底部有一个按钮。

but when i try to overflow the text area by typing words so it will exceed the rectangle, the scrollbar does not appear, also when typing and pressing enter until the bottom of the Rectangle is reached, the vertical scrollbar does not appear as well.但是当我尝试通过键入单词来溢出文本区域以使其超出矩形时,不会出现滚动条,而且在键入并按 Enter 直到到达矩形底部时,也不会出现垂直滚动条。

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12

Window {

    id: mainWindow
    width: 500
    height: 460
    visible: true
    title: qsTr("Edit Markdown source")
    flags: Qt.WindowCloseButtonHint | Qt.CustomizeWindowHint | Qt.Dialog | Qt.WindowTitleHint
    color: "red"
    
    Column{
        id: cols
        anchors.fill: parent
        anchors.margins: 5
        spacing: 3


        Rectangle {
            id: frame2
            width: parent.width
            height: 400
            border.color: 'gray'
            border.width: 1
            clip: true
            color: "blue"

            ScrollView {
                id: view
                ScrollBar.vertical.policy: ScrollBar.AsNeeded
                ScrollBar.horizontal.policy: ScrollBar.AsNeeded

                TextArea {
                    text: ""
                    color: "white"
                    font.family: "Helvetica Neue"
                    font.pixelSize: 15
                    width: 10
                    height: 10
                }
            }
        }

        Rectangle{
            id:saveRec
            anchors.horizontalCenter: parent.horizontalCenter
            anchors.topMargin: 20
            width: 80
            height: 40
            color: Qt.rgba(62/255,138/255,204/255,1)
            radius: 4

            Text{
                anchors.centerIn: parent
                text:"Save"
                color:"white"
                font.family: fontName
                font.pixelSize: 15
            }

            MouseArea{
                id:saveMouse
                hoverEnabled:true
                anchors.fill: parent
                onEntered: {
                    saveRec.opacity = 0.5
                }
                onExited: {
                    saveRec.opacity = 1
                }
                onClicked:{
                    //...
                }
            }
        }
    }
}

All you're missing is that your ScrollView has no defined size.您所缺少的只是您的 ScrollView 没有定义大小。 If you tell it how big it is, the scrollbars will get drawn.如果你告诉它有多大,滚动条就会被绘制出来。 I'm not sure why you're setting the TextArea's height/width to be 10, but in my test it worked with or without those lines.我不确定您为什么将 TextArea 的高度/宽度设置为 10,但在我的测试中,无论是否使用这些行,它都可以工作。

ScrollView {
    id: view
    anchors.fill: parent        // Define the ScrollView's size
    ScrollBar.vertical.policy: ScrollBar.AsNeeded
    ScrollBar.horizontal.policy: ScrollBar.AsNeeded

    TextArea {
        text: ""
        color: "white"
        font.family: "Helvetica Neue"
        font.pixelSize: 15
//        width: 10         // Not needed
//        height: 10        // Not needed
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM