Struct ComboBox
pub struct ComboBox<'a, T, Message, Theme = Theme, 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.§fn overlay<'b>(
&'b mut self,
tree: &'b mut Tree,
layout: Layout<'_>,
_renderer: &Renderer,
viewport: &Rectangle,
translation: Vector,
) -> Option<Element<'b, Message, Theme, Renderer>>
fn overlay<'b>( &'b mut self, tree: &'b mut Tree, layout: Layout<'_>, _renderer: &Renderer, viewport: &Rectangle, translation: Vector, ) -> Option<Element<'b, Message, Theme, Renderer>>
Widget, if there is any.§fn operate(
&mut self,
_tree: &mut Tree,
_layout: Layout<'_>,
_renderer: &Renderer,
_operation: &mut dyn Operation,
)
fn operate( &mut self, _tree: &mut Tree, _layout: Layout<'_>, _renderer: &Renderer, _operation: &mut dyn Operation, )
§fn a11y_nodes(
&self,
_layout: Layout<'_>,
_state: &Tree,
_cursor: Cursor,
) -> A11yTree
fn a11y_nodes( &self, _layout: Layout<'_>, _state: &Tree, _cursor: Cursor, ) -> A11yTree
a11y only.§fn set_id(&mut self, _id: Id)
fn set_id(&mut self, _id: Id)
§fn drag_destinations(
&self,
_state: &Tree,
_layout: Layout<'_>,
_renderer: &Renderer,
_dnd_rectangles: &mut DndDestinationRectangles,
)
fn drag_destinations( &self, _state: &Tree, _layout: Layout<'_>, _renderer: &Renderer, _dnd_rectangles: &mut DndDestinationRectangles, )
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> !RefUnwindSafe for ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme = Theme, Renderer = Renderer> !Send for ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme = Theme, 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, Renderer> UnsafeUnpin for ComboBox<'a, T, Message, Theme, Renderer>where
<Theme as Catalog>::Class<'a>: UnsafeUnpin,
<Theme as Catalog>::Class<'a>: UnsafeUnpin,
<Renderer as Renderer>::Font: UnsafeUnpin,
Message: UnsafeUnpin,
impl<'a, T, Message, Theme = Theme, Renderer = Renderer> !UnwindSafe for ComboBox<'a, T, Message, Theme, Renderer>
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
§impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> 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.Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<'a, Message, T> IntoListItem<'a, Message> for T
impl<'a, Message, T> IntoListItem<'a, Message> for T
fn into_list_item(self) -> ListItem<'a, Message>
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more