Русскоязычный портал о QML и QtQuick, QmlPortal What the duck
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум QML » QML форум » Вопросы по QML » Не получается сделать полноценную бегущюю строку (Не получается сделать полноценную бегущюю строку)
Не получается сделать полноценную бегущюю строку
RomkoДата: Понедельник, 29.08.2011, 20:14 | Сообщение # 1
Постоялец
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 2
Статус: Offline
Доброе время суток, уже несколько дней играюсь с бегущей строкой, но не получается сделать её полноценной. Она постоянно выходит за пределы окна, и вообще слабо похожа на бегущую строку.

Вот что у меня получилось:

Code
import QtQuick 1.0

Rectangle{width: 400; height: 400

Rectangle {id:name
     height: 52; width: 188
     x: 106; y: 174
     radius: 9; border.width: 1
     border.color: "#000000"

     gradient: Gradient {
         GradientStop {position: 0; color: "#ffffff"}
         GradientStop {position: 1; color: "#a48e8e"}
     }

     property int pixelSize: 20
     property color textColor: "black"
     property string text: "Song which play in payer "

     Row {
         y: 10

         NumberAnimation on x { from: 10; to: -text.width; duration: 6000; loops: Animation.Infinite }
         Text {z: 2; id: text; font.pixelSize: name.pixelSize; color: name.textColor; text: name.text }
         Text { font.pixelSize: name.pixelSize; color: name.textColor; text: name.text }
         Text { font.pixelSize: name.pixelSize; color: name.textColor; text: name.text }
     }
}
}


Что бы вы могли посоветовать с етим делать?

Добавлено (29.08.2011, 20:14)
---------------------------------------------
Ну с плавностью я разобрался, но вот чтоб оно под рамку как в карман заходило(чтоб его видно не было за полями), это пока нет.

 
CYANДата: Понедельник, 29.08.2011, 22:13 | Сообщение # 2
Администратор
Группа: Администраторы
Сообщений: 21
Награды: 1
Статус: Offline
Решение простое:
установите у родителького (для текста) прямоугольника свойтво clip в true:

Code
import QtQuick 1.0  

Rectangle{
     width: 400; height: 400  

     Rectangle {
         id:name  
         height: 52; width: 188  
         x: 106; y: 174  
         radius: 9; border.width: 1  
         border.color: "#000000"  
          
         clip: true

         gradient: Gradient {  
             GradientStop {position: 0; color: "#ffffff"}  
             GradientStop {position: 1; color: "#a48e8e"}  
         }  

         property int pixelSize: 20  
         property color textColor: "black"  
         property string text: "Song which play in player "  

         Row {  
             y: 10  

             NumberAnimation on x { from: 0; to: -text.width; duration: 6000; loops: Animation.Infinite }  
             Text {z: 2; id: text; font.pixelSize: name.pixelSize; color: name.textColor; text: name.text }  
             Text { font.pixelSize: name.pixelSize; color: name.textColor; text: name.text }  
             Text { font.pixelSize: name.pixelSize; color: name.textColor; text: name.text }  
         }  
     }  
}
 
RomkoДата: Вторник, 30.08.2011, 06:46 | Сообщение # 3
Постоялец
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 2
Статус: Offline
Спасибо большое, очень пригодилось не только для этого но и для передвигаемого квадрата который не хотел прятаться. А по сути за что отвечает этот clip?
 
CYANДата: Вторник, 30.08.2011, 10:34 | Сообщение # 4
Администратор
Группа: Администраторы
Сообщений: 21
Награды: 1
Статус: Offline
в документации говорится следующее:

Quote
clip : bool

Значение по умолчанию - false.
Усли clip=true, то элемент обрезает отображение в пределах ограничивающего прямоугольника, как свое, так и всех своих дочерних элементов. Непрямоугольные регионы для обрезания не поддрживаются по причинам, связанным с производительностью.
 
Форум QML » QML форум » Вопросы по QML » Не получается сделать полноценную бегущюю строку (Не получается сделать полноценную бегущюю строку)
  • Страница 1 из 1
  • 1
Поиск: