• 5043阅读
  • 3回复

[提问]FocusScope 的 activeFocus 条件没有生效 [复制链接]

上一主题 下一主题
离线bphanzhu
 
只看楼主 倒序阅读 楼主  发表于: 2012-08-29
使用 QML 写的一个 TextEntry,希望在获得焦点时,边框的宽度和颜色发生变化,但是在测试的时候发现TextEntry获取到焦点之后,边框和背景均没有发生变化,请问是否 QML 写的有误?或者系统、QT的什么配置可能导致这个问题-.-

  1. import QtQuick 1.1
  2. FocusScope {
  3.     id: focusScope
  4.     width: 200;
  5.     height: 36
  6.     property alias text: textInput.text
  7.     property alias echoMode: textInput.echoMode
  8.     property alias validator: textInput.validator
  9.     Rectangle {
  10.         id: container
  11.         width: parent.width
  12.         height: parent.height
  13.         anchors.fill: parent
  14.         color: parent.activeFocus ? "#ffffff" : "#e6e1e1"
  15.         border.width: parent.activeFocus ? 2 : 1
  16.         border.color: parent.activeFocus ? "blue": "gray"
  17.         radius: 6
  18.     }
  19.     TextInput {
  20.         id: textInput
  21.         font.pointSize: 12
  22.         anchors.rightMargin: 10
  23.         anchors.leftMargin: 10
  24.         anchors.bottomMargin: parent.height / 6
  25.         anchors.topMargin: parent.height / 6
  26.         anchors.fill: parent
  27.         focus: true
  28.         selectByMouse: true
  29.         smooth: true
  30.     }
  31.     MouseArea {
  32.         id: mouseArea
  33.         anchors.fill: parent
  34.         hoverEnabled: true
  35.         onClicked: parent.focus = true
  36.     }
  37. }

我的环境是 Fedora 17, QT 4.8

离线dgglx
只看该作者 1楼 发表于: 2012-11-23
我把你的代码运行了一下,可以啊!效果是:单击输入框的时候,边框颜色变成蓝色,并加粗了啊!是要这个效果吗??
————————————————————————
坚持就是胜利,执着成就未来

心情好才是王道 ^_^
离线dgglx
只看该作者 2楼 发表于: 2012-11-23
我是在windows下的Qt creator 2.4.1
————————————————————————
坚持就是胜利,执着成就未来

心情好才是王道 ^_^
离线dgglx
只看该作者 3楼 发表于: 2012-11-23
附图:
鼠标点击之前

点击之后
————————————————————————
坚持就是胜利,执着成就未来

心情好才是王道 ^_^
快速回复
限100 字节
 
上一个 下一个