Struct ComboBox
pub struct ComboBox<'a, T, Message, Theme = Theme, Renderer = Renderer<Renderer, Renderer>>{ /* private fields */ }Expand description
A widget for searching and selecting a single value from a list of options.
§Example
use iced::widget::combo_box;
struct State {
fruits: combo_box::State<Fruit>,
favorite: Option<Fruit>,
}
#[derive(Debug, Clone)]
enum Fruit {
Apple,
Orange,
Strawberry,
Tomato,
}
#[derive(Debug, Clone)]
enum Message {
FruitSelected(Fruit),
}
fn view(state: &State) -> Element<'_, Message> {
combo_box(
&state.fruits,
"Select your favorite fruit...",
state.favorite.as_ref(),
Message::FruitSelected
)
.into()
}
fn update(state: &mut State, message: Message) {
match message {
Message::FruitSelected(fruit) => {
state.favorite = Some(fruit);
}
}
}
impl std::fmt::Display for Fruit {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(match self {
Self::Apple => "Apple",
Self::Orange => "Orange",
Self::Strawberry => "Strawberry",
Self::Tomato => "Tomato",
})
}
}Implementations§
§impl<'a, T, Message, Theme, Renderer> ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme, Renderer> ComboBox<'a, T, Message, Theme, Renderer>
pub fn new(
state: &'a State<T>,
placeholder: &str,
selection: Option<&T>,
on_selected: impl Fn(T) -> Message + 'static,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn new( state: &'a State<T>, placeholder: &str, selection: Option<&T>, on_selected: impl Fn(T) -> Message + 'static, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Creates a new ComboBox with the given list of options, a placeholder,
the current selected value, and the message to produce when an option is
selected.
pub fn on_input(
self,
on_input: impl Fn(String) -> Message + 'static,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn on_input( self, on_input: impl Fn(String) -> Message + 'static, ) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn on_option_hovered(
self,
on_option_hovered: impl Fn(T) -> Message + 'static,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn on_option_hovered( self, on_option_hovered: impl Fn(T) -> Message + 'static, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the message that will be produced when an option of the
ComboBox is hovered using the arrow keys.
pub fn on_open(
self,
message: Message,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn on_open( self, message: Message, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the message that will be produced when the ComboBox is
opened.
pub fn on_close(
self,
message: Message,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn on_close( self, message: Message, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the message that will be produced when the outside area
of the ComboBox is pressed.
pub fn font(
self,
font: <Renderer as Renderer>::Font,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn font( self, font: <Renderer as Renderer>::Font, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the Renderer::Font of the ComboBox.
pub fn icon(
self,
icon: Icon<<Renderer as Renderer>::Font>,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn icon( self, icon: Icon<<Renderer as Renderer>::Font>, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the text_input::Icon of the ComboBox.
pub fn size(
self,
size: impl Into<Pixels>,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn size( self, size: impl Into<Pixels>, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the text sixe of the ComboBox.
pub fn line_height(
self,
line_height: impl Into<LineHeight>,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn line_height( self, line_height: impl Into<LineHeight>, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the LineHeight of the ComboBox.
pub fn width(
self,
width: impl Into<Length>,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn width( self, width: impl Into<Length>, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the width of the ComboBox.
Sets the height of the menu of the ComboBox.
pub fn text_shaping(
self,
shaping: Shaping,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn text_shaping( self, shaping: Shaping, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the text::Shaping strategy of the ComboBox.
pub fn input_style(
self,
style: impl Fn(&Theme, Status) -> Style + 'a,
) -> ComboBox<'a, T, Message, Theme, Renderer>
pub fn input_style( self, style: impl Fn(&Theme, Status) -> Style + 'a, ) -> ComboBox<'a, T, Message, Theme, Renderer>
Sets the style of the input of the ComboBox.
Sets the style of the menu of the ComboBox.
pub fn input_class(
self,
class: impl Into<<Theme as Catalog>::Class<'a>>,
) -> ComboBox<'a, T, Message, Theme, Renderer>
Available on crate feature advanced only.
pub fn input_class( self, class: impl Into<<Theme as Catalog>::Class<'a>>, ) -> ComboBox<'a, T, Message, Theme, Renderer>
advanced only.Sets the style class of the input of the ComboBox.
Available on crate feature advanced only.
advanced only.Sets the style class of the menu of the ComboBox.
Trait Implementations§
§impl<'a, T, Message, Theme, Renderer> From<ComboBox<'a, T, Message, Theme, Renderer>> for Element<'a, Message, Theme, Renderer>
impl<'a, T, Message, Theme, Renderer> From<ComboBox<'a, T, Message, Theme, Renderer>> for Element<'a, Message, Theme, Renderer>
§impl<T, Message, Theme, Renderer> Widget<Message, Theme, Renderer> for ComboBox<'_, T, Message, Theme, Renderer>
impl<T, Message, Theme, Renderer> Widget<Message, Theme, Renderer> for ComboBox<'_, T, Message, Theme, Renderer>
§fn update(
&mut self,
tree: &mut Tree,
event: &Event,
layout: Layout<'_>,
cursor: Cursor,
renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>,
viewport: &Rectangle,
)
fn update( &mut self, tree: &mut Tree, event: &Event, layout: Layout<'_>, cursor: Cursor, renderer: &Renderer, clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, viewport: &Rectangle, )
§fn mouse_interaction(
&self,
tree: &Tree,
layout: Layout<'_>,
cursor: Cursor,
viewport: &Rectangle,
renderer: &Renderer,
) -> Interaction
fn mouse_interaction( &self, tree: &Tree, layout: Layout<'_>, cursor: Cursor, viewport: &Rectangle, renderer: &Renderer, ) -> Interaction
§fn draw(
&self,
tree: &Tree,
renderer: &mut Renderer,
theme: &Theme,
_style: &Style,
layout: Layout<'_>,
cursor: Cursor,
viewport: &Rectangle,
)
fn draw( &self, tree: &Tree, renderer: &mut Renderer, theme: &Theme, _style: &Style, layout: Layout<'_>, cursor: Cursor, viewport: &Rectangle, )
Widget using the associated Renderer.Auto Trait Implementations§
impl<'a, T, Message, Theme, Renderer> Freeze for ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme = Theme, Renderer = Renderer<Renderer, Renderer>> !RefUnwindSafe for ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme = Theme, Renderer = Renderer<Renderer, Renderer>> !Send for ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme = Theme, Renderer = Renderer<Renderer, Renderer>> !Sync for ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme, Renderer> Unpin for ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme = Theme, Renderer = Renderer<Renderer, Renderer>> !UnwindSafe for ComboBox<'a, T, Message, Theme, Renderer>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
Source§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more