pub struct Button<T> { /* private fields */ }
Expand description

A button with a text label.

Implementations§

source§

impl<T: Data> Button<T>

source

pub fn new(text: impl Into<LabelText<T>>) -> Button<T>

Create a new button with a text label.

Use the .on_click method to provide a closure to be called when the button is clicked.

Examples
use druid::widget::Button;

let button = Button::new("Increment").on_click(|_ctx, data: &mut u32, _env| {
    *data += 1;
});
source

pub fn from_label(label: Label<T>) -> Button<T>

Create a new button with the provided Label.

Use the .on_click method to provide a closure to be called when the button is clicked.

Examples
use druid::Color;
use druid::widget::{Button, Label};

let button = Button::from_label(Label::new("Increment").with_text_color(Color::grey(0.5))).on_click(|_ctx, data: &mut u32, _env| {
    *data += 1;
});
source

pub fn dynamic(text: impl Fn(&T, &Env) -> String + 'static) -> Self

Construct a new dynamic button.

The contents of this button are generated from the data using a closure.

This is provided as a convenience; a closure can also be passed to new, but due to limitations of the implementation of that method, the types in the closure need to be annotated, which is not true for this method.

Examples

The following are equivalent.

use druid::Env;
use druid::widget::Button;
let button1: Button<u32> = Button::new(|data: &u32, _: &Env| format!("total is {}", data));
let button2: Button<u32> = Button::dynamic(|data, _| format!("total is {}", data));
source

pub fn on_click( self, f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static ) -> ControllerHost<Self, Click<T>>

Provide a closure to be called when this button is clicked.

source

pub fn set_accent(&mut self, value: bool)

Use accent color as button color

source

pub fn with_accent(self, value: bool) -> Self

Builder style to use accent color as button color

Trait Implementations§

source§

impl<T: Data> Widget<T> for Button<T>

source§

fn event( &mut self, ctx: &mut EventCtx<'_, '_>, event: &Event, _data: &mut T, _env: &Env )

Handle an event. Read more
source§

fn lifecycle( &mut self, ctx: &mut LifeCycleCtx<'_, '_>, event: &LifeCycle, data: &T, env: &Env )

Handle a life cycle notification. Read more
source§

fn update( &mut self, ctx: &mut UpdateCtx<'_, '_>, old_data: &T, data: &T, env: &Env )

Update the widget’s appearance in response to a change in the app’s [Data] or [Env]. Read more
source§

fn layout( &mut self, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env ) -> Size

Compute layout. Read more
source§

fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, data: &T, env: &Env)

Paint the widget appearance. Read more
§

fn compute_max_intrinsic( &mut self, axis: Axis, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env ) -> f64

Computes max intrinsic/preferred dimension of a widget on the provided axis. Read more

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for Button<T>

§

impl<T> !Send for Button<T>

§

impl<T> !Sync for Button<T>

§

impl<T> Unpin for Button<T>

§

impl<T> !UnwindSafe for Button<T>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> RoundFrom<T> for T

§

fn round_from(x: T) -> T

Performs the conversion.
§

impl<T, U> RoundInto<U> for Twhere U: RoundFrom<T>,

§

fn round_into(self) -> U

Performs the conversion.
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<T, W> TestWidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,

§

fn record(self, recording: &Recording) -> Recorder<Self>

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T, W> WidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,

source§

fn on_command<CT: 'static>( self, selector: Selector<CT>, handler: impl Fn(&mut EventCtx<'_, '_>, &CT, &mut T) + 'static ) -> ControllerHost<Self, OnCmd<CT, T>>

用当该组件接收到指定的 [druid::Command] 时产生回调的控制器 crate::widgets::OnCmd 包裹当前组件
source§

fn on_notify<CT: 'static>( self, selector: Selector<CT>, handler: impl Fn(&mut EventCtx<'_, '_>, &CT, &mut T) + 'static ) -> OnNotify<CT, T>

用当该组件接收到指定的 [druid::Notification] 时产生回调的控制器 crate::widgets::OnNotify 包裹当前组件
source§

fn on_change( self, f: impl Fn(&mut EventCtx<'_, '_>, &T, &mut T, &Env) + 'static ) -> ControllerHost<Self, OnChange<T>>

Calls the function when data changes in a child widget Read more
source§

fn show_if(self, f: ShowIfCallback<T>) -> ShowIf<T>

当数据变更时触发回调,如果为 true 则显示包裹起来的组件,否则隐藏 Read more
§

impl<T, W> WidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,

§

fn padding(self, insets: impl Into<KeyOrValue<Insets>>) -> Padding<T, Self>

Wrap this widget in a [Padding] widget with the given [Insets]. Read more
§

fn center(self) -> Align<T>

Wrap this widget in an [Align] widget, configured to center it.
§

fn align_left(self) -> Align<T>

Wrap this widget in an [Align] widget, configured to align left.
§

fn align_right(self) -> Align<T>

Wrap this widget in an [Align] widget, configured to align right.
§

fn align_vertical(self, align: UnitPoint) -> Align<T>

Wrap this widget in an [Align] widget, configured to align vertically.
§

fn align_horizontal(self, align: UnitPoint) -> Align<T>

Wrap this widget in an [Align] widget, configured to align horizontally.
§

fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>

Wrap this widget in a [SizedBox] with an explicit width.
§

fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>

Wrap this widget in a [SizedBox] with an explicit height.
§

fn fix_size( self, width: impl Into<KeyOrValue<f64>>, height: impl Into<KeyOrValue<f64>> ) -> SizedBox<T>

Wrap this widget in an [SizedBox] with an explicit width and height
§

fn expand(self) -> SizedBox<T>

Wrap this widget in a [SizedBox] with an infinite width and height. Read more
§

fn expand_width(self) -> SizedBox<T>

Wrap this widget in a [SizedBox] with an infinite width. Read more
§

fn expand_height(self) -> SizedBox<T>

Wrap this widget in a [SizedBox] with an infinite width. Read more
§

fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>

Wrap this widget in a [Container] with the provided background brush. Read more
§

fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>

Wrap this widget in a [Container] with the provided foreground brush. Read more
§

fn border( self, color: impl Into<KeyOrValue<Color>>, width: impl Into<KeyOrValue<f64>> ) -> Container<T>

Wrap this widget in a [Container] with the given border. Read more
§

fn env_scope(self, f: impl Fn(&mut Env, &T) + 'static) -> EnvScope<T, Self>

Wrap this widget in a [EnvScope] widget, modifying the parent [Env] with the provided closure.
§

fn controller<C>(self, controller: C) -> ControllerHost<Self, C>where C: Controller<T, Self>,

Wrap this widget with the provided [Controller].
§

fn on_added( self, f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static ) -> ControllerHost<Self, Added<T, Self>>

Provide a closure that will be called when this widget is added to the widget tree. Read more
§

fn on_click( self, f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static ) -> ControllerHost<Self, Click<T>>

Control the events of this widget with a [Click] widget. The closure provided will be called when the widget is clicked with the left mouse button. Read more
§

fn debug_paint_layout(self) -> EnvScope<T, Self>

Draw the layout Rects of this widget and its children.
§

fn debug_widget_id(self) -> EnvScope<T, Self>

Display the WidgetIds for this widget and its children, when hot. Read more
§

fn debug_invalidation(self) -> DebugInvalidation<T, Self>

Draw a color-changing rectangle over this widget, allowing you to see the invalidation regions.
§

fn debug_widget(self) -> EnvScope<T, Self>

Set the DEBUG_WIDGET env variable for this widget (and its descendants). Read more
§

fn lens<S, L>(self, lens: L) -> LensWrap<S, T, L, Self>where S: Data, L: Lens<S, T>,

Wrap this widget in a [LensWrap] widget for the provided [Lens].
§

fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>

Assign the widget a specific [WidgetId]. Read more
§

fn boxed(self) -> Box<dyn Widget<T>, Global>

Wrap this widget in a Box.
§

fn scroll(self) -> Scroll<T, Self>

Wrap this widget in a [Scroll] widget.
§

fn disabled_if( self, disabled_if: impl Fn(&T, &Env) -> bool + 'static ) -> DisabledIf<T, Self>

Wrap this widget in a [DisabledIf] widget. Read more
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more