slint
slint copied to clipboard
ComboBox should use a scrollable view when the model is too large to display
ComboBox {
model: [
10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
110, 120, 130, 140, 150, 160, 170, 180, 190, 200,
210, 220, 230, 240, 250, 260, 270, 280, 290, 300,
310, 320, 330, 340, 350, 360, 370, 380, 390, 400,
410, 420, 430, 440, 450, 460, 470, 480, 490, 500,
510, 520, 530, 540, 550, 560, 570, 580, 590, 600,
610, 620, 630, 640, 650, 660, 670, 680, 690, 700,
710, 720, 730, 740, 750, 760, 770, 780, 790, 800,
810, 820, 830, 840, 850, 860, 870, 880, 890, 900,
910, 920, 930, 940, 950, 960, 970, 980, 990, 1000
];
}
I am able to get all the list of options available with comboBox. how can i see all available options? Cargo.toml
[dependencies]
slint = "1.4"
[build-dependencies]
slint-build = "1.4"
Thank you for the bug report. Indeed, the ComboBox is missing a scroll view in all the styles.
I tried to fix this issue before but had some issues with the PopupWindow
. What is needed to make the ComboBox scrollable is a minimum height, a maximum height and inside of the Popup the ScrollView
but I was not able to get it that all together working properly. @tronical maybe you have an idea how to fix it.
I tried to fix this issue before but had some issues with the
PopupWindow
. What is needed to make the ComboBox scrollable is a minimum height, a maximum height and inside of the Popup theScrollView
but I was not able to get it that all together working properly. @tronical maybe you have an idea how to fix it.
y can temporarily try using @jui/combobox/combobox.slint
example
Cargo.toml file:
[dependencies]
slint = "1.4.1"
[build-dependencies]
jui = "0.1.16"
build.rs file:
pub fn main() {
let separator = jui::jui_file::separator;
jui::compile(format!("view{separator}main.slint")).unwrap();
}
main.rs file:
slint::include_modules!();
fn main() {
App::new().unwrap().run().unwrap();
}
view/main.slint file :
import { ComboBox } from "@jui/combobox/combobox.slint";
export component App inherits Window {
min-width: 300px;
min-height: 300px;
ComboBox {
width: 100px;
data: [
{id:"1",text:"one"},{id:"2",text:"two"},
{id:"3",text:"three"},{id:"4",text:"four"},
{id:"5",text:"five"},{id:"6",text:"six"},
{id:"7",text:"seven"},{id:"8",text:"eight"},
{id:"9",text:"night"},{id:"10",text:"ten"}
];
}
}
hope this is helpful to you
Any update without using third party solution?
Thanks
Or you could use a custom widget. The only problem is that the theming is sort of crap link to slintpad by ogoffart in https://github.com/slint-ui/slint/discussions/2657
The ideal behavior would be to define a min-height and a max-height. With the more items the ComboBox
Popup stretches until it reaches the max-height
at that point scrolling would be there. But that does currently not work with PopupWindow
. What could be done now to make scrolling possible in the ComboBox is to define a fixed height for the popup and add a ScrollView
. @tronical @ogoffart what do you think?