Skip to content

DataTable auto-width columns don't shrink back down #3449

Open
@rodrigogiraoserrao

Description

@rodrigogiraoserrao

Removing rows won't recompute the width of auto-width columns.

To reproduce, run the app below and press R

Repro app
from textual.app import App, ComposeResult
from textual.widgets import DataTable

ROWS = [
    ("lane", "swimmer", "country", "time"),
    (4, "Joseph Schooling", "Singapore", 50.39),
    (2, "Michael Phelps", "United States", 51.14),
    (5, "Chad le Clos", "South Africa", 51.14),
    (6, "László Cseh", "Hungary", 51.14),
    (3, "Li Zhuhao", "China", 51.26),
    (8, "Mehdy Metella", "France", 51.58),
    (7, "Tom Shields", "United States", 51.73),
    (1, "Aleksandr Sadovnikov =============", "Russia", 51.84),
]


class TableApp(App):
    def compose(self) -> ComposeResult:
        yield DataTable()

    def on_mount(self) -> None:
        table = self.query_one(DataTable)
        table.add_columns(*ROWS[0])
        *_, self.last_row = table.add_rows(ROWS[1:])

    def key_r(self):
        self.query_one(DataTable).remove_row(self.last_row)


app = TableApp()
if __name__ == "__main__":
    app.run()

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions