查看完整版本: [-- 可能上次没说清楚,再描述下问题,关于textarea 滚动条悬停设置 --]

QTCN开发网 -> Qt QML开发 -> 可能上次没说清楚,再描述下问题,关于textarea 滚动条悬停设置 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

t62858216 2017-11-27 09:35

可能上次没说清楚,再描述下问题,关于textarea 滚动条悬停设置

在textarea中,右边的滚动条,我想实现实现靠近右边界区域显示滚动条并悬停,
transientScrollBars : bool //这个只是实现的滚动显示滚动条,求老手指导下。

小韩老师 2017-11-27 19:06
去你安装目录找到,比如Qt5.9的C:\Qt\Qt5.9.0\5.9\Src\qtquickcontrols\src\controls\Styles\Base\ScrollViewStyle.qml
这个就是ScrollViewStyle的qml实现方式,
里边有滑动条 property Component handle: Item {.../}
以及背景 property Component scrollBarBackground: Item {}
一堆内容你稍微修改一下就可以实现你需要的方式,比如说那个当停靠时就透明度就是0,移开时透明度就是1
实现方式各种各样。之后就将ScrollViewStyle的两个属性替换就一下可以了。


t62858216 2017-11-28 09:24
小韩老师:
去你安装目录找到,比如Qt5.9的C:\Qt\Qt5.9.0\5.9\Src\qtquickcontrols\src\controls\Styles\Base\ScrollViewStyle.qml
这个就是ScrollViewStyle的qml实现方式,
里边有滑动条 property Component handle: Item {.../}
以及背景 property Component scrollBarBackground: Item {}
一堆内容你稍微修改一下就可以实现你需要的方式,比如说那个当停靠时就透明度就是0,移开时透明度就是1
.......

感谢大神的回复,我前面也看了下文档,不知道哪有属性可以设置靠近改变透明度,新手请见谅

    property Component scrollBarBackground: Item {
        property bool sticky: false
        property bool hovered: styleData.hovered
        implicitWidth: Math.round(TextSingleton.implicitHeight)
        implicitHeight: Math.round(TextSingleton.implicitHeight)
        clip: true
        opacity: transientScrollBars ? 0.5 : 1.0
        visible: !Settings.hasTouchScreen && (!transientScrollBars || sticky)
        Rectangle {
            anchors.fill: parent
            color: "#ddd"
            border.color: "#aaa"
            anchors.rightMargin: styleData.horizontal ? -2 : -1
            anchors.leftMargin: styleData.horizontal ? -2 : 0
            anchors.topMargin: styleData.horizontal ? 0 : -2
            anchors.bottomMargin: styleData.horizontal ? -1 : -2
        }
        onHoveredChanged: if (hovered) sticky = true
        onVisibleChanged: if (!visible) sticky = false
    }

小韩老师 2017-11-28 14:45
需要自己有探索精神,当然没有你说的设置一个属性就可以满足你的需要了,你需要根据自己的需要去定制一些东西。方法很多,里边有个显示的visible,你可以通过一些附加的操作或者外部控件,根据需要设置为true或者false

t62858216 2017-11-28 17:20
小韩老师:需要自己有探索精神,当然没有你说的设置一个属性就可以满足你的需要了,你需要根据自己的需要去定制一些东西。方法很多,里边有个显示的visible,你可以通过一些附加的操作或者外部控件,根据需要设置为true或者false (2017-11-28 14:45) 

谢谢你的回复 ,大致试了下,设置透明度是可以达到悬停消失,但是滚动时候不知道怎么恢复透明度并且过一段时间消失,困惑了我两天了

小韩老师 2017-11-28 20:47
[attachment=18210][attachment=18210]
选择制作一个control2程序
设计代码
import QtQuick 2.7
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.2
ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    ScrollView {
        id: view
        anchors.fill: parent

        TextArea {
            text: "TextArea\n...\n...\n...\n...\n...\n...\n"
        }
    }
  }
运行程序
[attachment=18211][attachment=18211]
不管是悬靠或者滑动都能显示滚动条,这个就是普通手机程序的设计模式,应该和你需要的一致,去学习一下就可以实现你要的功能。

t62858216 2017-11-29 09:15
小韩老师:[图片]
选择制作一个control2程序
设计代码
import QtQuick 2.7
import QtQuick.Layouts 1.3
....... (2017-11-28 20:47) 

谢谢了,我这还是qt 5.7版本的  好像还用不了2.2的,自己再摸索下吧

t62858216 2017-11-29 11:06
加个定时器解决了 ,谢谢小韩老师的恢复 ,对啊这个怎么结帖额。


查看完整版本: [-- 可能上次没说清楚,再描述下问题,关于textarea 滚动条悬停设置 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled