How to set filter option in QTableWidget

后端 未结 2 1537
陌清茗
陌清茗 2020-12-31 09:19

In my application I have QtableWidget displaying multiple rows , line edit to enter string and push button, Requirement says upon clicking on push button Same <

2条回答
  •  旧巷少年郎
    2020-12-31 10:13

    I HIGHLY recommend going about this in the following way! This is how it is meant to be done in Qt.

    Look at the tutorial on Qt Model/View Programming. The problem is that QTableWidget is a convenience class that hides the Model/View stuff for you. In your case, you can't (or shouldn't) ignore the Model/View structure Qt provides.

    What you will need to do:

    1. Use a QTableView instead of a QTableWidget.
    2. Subclass QAbstractItemModel and implement data() (for reading), and all the other functions you need from the documentation. This is the trickiest part, but refer to the above link for a walkthrough of how to do this.
    3. Create a QSortFilterProxyModel and setModel() of the QTableView to it.
    4. setSourceModel() of your QSortFilterProxyModel to your subclassed model.
    5. Set the string you want to filter on using setFilterFixedString() or setFilterRegExp() in your QSortFilterProxyModel

    Let me know if this helps. This is far more professional, and in the long run, elegant, than iterating through all the elements in your table.

提交回复
热议问题