# Extended-QTableView **Repository Path**: dusharp/Extended-QTableView2 ## Basic Information - **Project Name**: Extended-QTableView - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-19 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Can be installed with:
pip install ExtendedQtableview
Overview ====================================================== This is based on a table UI element from an expensive piece of software from my work that is extremely handy for a manufacturing environment for tracking work/showing data. I thought I'd recreate it. My implementation of this will remain performant even with tens of thousands of rows of data. Features: 1) Accepts SQL - uses SQLITE3 to read/write to tables. Can be used to create .db SQL files and/or add/modify tables to it as well. 2) Expansion rows with additional tables 3) Columns that support checkboxes 4) Header Filtering - w/ filter footer 5) In-column searching (just type in the column to find what you want) 6) Export to Excel 7) Optional Footer Row 8) Optional add/remove rows 9) Optional Datetime columns w/ QCalendar 10) Optional double click to edit table(s) 11) Sorting/movable columns ![qtable](https://github.com/jxfuller1/Extended-QTableView/assets/123666150/20568e6a-dbf8-4996-8177-8c6b5736a5d3)


Use setup_table function to create table Create Table ================================================================================== setup_table arguments (NOTE: these arguments do NOT need to be passed in at time of table initialization. The parameters/argument can be changed with separate functions later.
ExtentedQtableview.setup_table(maintable_data, maintable_headers, columns_with_checkboxes, checked_indexes_rows, sub_table_data, editable_columns, datetime_columns, footer, footer_values, subtable_col_checkboxes, sub_table_headers_labels, expandable_rows, add_mainrow_option, del_mainrow_option, add_subrow_option, del_subrow_option, subtable_datetime_columns, dbleclick_edit_only, use_sql, sql_maintable_path, sql_maintable_name, sql_maintable_query, sql_subtable_path, sql_subtable_name, sql_subtable_query) Modify Table Functions ================================================================================ If you've already setup your table instance, with say the following:
import ExtendedQtableview
table = ExtendedQtableview.setup_table()
table.loadnew_maintable_sql(maintable_name, maintable_sql_path, maintable_query, subtable_sql_name, subtable_sql_path, subtable_headers, subtable_query, keep_existing_filter) Note: that you do not need to pass subtable data in when using this function, it can be done with a separate function later.


table.loadnew_maintable_list(maintable_data, keep_existing_filter)

table.loadnew_subtable_list(subtable_data)


table.loadnew_subtable_sql(subtable_sql_name, subtable_sql_path, subtable_headers, subtable_query)

table.loadnew_checkboxed_rows(checked_rows)


table.loadnew_columns_with_checkboxes(columns_with_checkboxes) Note: If using expandable rows, you will NEED to add +1 to your column indexes for the keys. (this doesn't need to be done if providing this data during the initialization of the table with setup_table())


table.loadnew_edible_columns(editable_columns) Note: If using expandable rows, you will NEED to add +1 to your column indexes for the keys. (this doesn't need to be done if providing this data during the initialization of the table with setup_table())


table.loadnew_datetime_columns(datetime_columns) Note: If using expandable rows, you will NEED to add +1 to your column indexes for the keys. (this doesn't need to be done if providing this data during the initialization of the table with setup_table())


table.loadnew_footervalues(footer_values) Note: If using expandable rows, you will NEED to add +1 to your column indexes for the keys. (this doesn't need to be done if providing this data during the initialization of the table with setup_table())


table.loadnew_subtable_headers(subtable_headers)

table.loadnew_subtable_col_checkboxes(subtable_col_checkboxes)

table.update_add_mainrow_option(add_mainrow_option)

table.update_del_mainrow_option(del_mainrow_option)

table.update_add_subrow_option(add_subrow_option)

table.update_del_subrow_option(del_subrow_option

table.loadnew_subtable_datetime(subtable_datetime_columns)

table.update_dblclick_edit_only(dblclick_edit_only)

table.useFooter(footer)

table.loadnew_headers(headers)

table.update_using_sql(value)

table.use_expandable_rows(value)

table.clear_table(keep_filter) Using existing QTableView Functions ==================================================================== If you've already setup your table instance, with say the following:
import ExtendedQtableview
table = ExtendedQtableview.setup_table()
To use existing QTableView functions, just do table.table_view.(existing qtableview function)()
For example:
table.table_view.resizeColumnsToContents()
Other Notes: ===================================================================