Не удается управлять фокусом и Toucharea, щелкните одновременноC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Не удается управлять фокусом и Toucharea, щелкните одновременно

Сообщение Anonymous »

Я испытываю странную проблему с Slint, C ++, 1.13 в Windows.
Я разработал пользовательский элемент управления кнопкой.

Код: Выделить всё

import { Theme } from "theme.slint";
import { VerticalBox } from "std-widgets.slint";

export component MenuItem inherits Rectangle
{
// Public properties
property  pressed: area.pressed;
in property   menu_icon;
in property  menu_text;
background: #00000099;

property  scale_factor: area.pressed ? 0.95 : 1.0;

callback activated();

// Implicit size
width: Theme.sizes.menu_item.w;
height: Theme.sizes.menu_item.h;

fs := FocusScope {
x: 0px; y: 0px; width: parent.width; height: parent.height; z: 1002;

}

Rectangle {
visible: fs.has-focus;
background: transparent;
border-color: #ffffff;
border-width: 2px;
width: parent.width;
height: parent.height;
}

// contenu centré + scalable (icône + texte)
Rectangle {
background: transparent;
width:  parent.width  * root.scale_factor;
height: parent.height * root.scale_factor;
x: (parent.width  - self.width)  / 2;
y: (parent.height - self.height) / 2;

Image {
source: root.menu_icon;
width:  Theme.sizes.menu_icon.w * root.scale_factor;
height: Theme.sizes.menu_icon.h * root.scale_factor;
image-fit: contain;
x: (parent.width  - self.width)  / 2;
y: (parent.height - self.height) / 2 - 12px;
}

Text {
text: root.menu_text;
color: #ffffff;
font-family: Theme.fonts.family;
font-size: Theme.fonts.menuItemSize * 1pt;
font-weight: 600;
width: parent.width;
horizontal-alignment: center;
y: parent.height - self.height - Theme.sizes.v25;
}
}

area := TouchArea {
x: 0px; y: 0px; width: parent.width; height: parent.height; z: 1001;

clicked => {
fs.focus();
root.activated();
}
}
}
Когда Menuitem нажимается, его внутренний прямоугольник немного масштабируется.
White "Focus" прямоугольник виден только тогда, когда внутренний фокусировка имеет фокус. /> Если я нажимаю на первую, кнопку имеет фокус, и отображается белый прямоугольник Focus. LINE. Я должен нажать во второй раз, чтобы он работал. Управляется Toucharea :: click () . Но я получаю ошибку компиляции: «Неизвестное свойство фокусируется на щелчке».
Однако в официальном Slint Doc собственность, кажется, существует!>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -same-time
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»