Hi,

I'd probably handle this via either a custom delegate or by using an
event filter.

André

P.S. Oh, and get rid of the QTableWidget. Use QTableView instead.

Op 05/07/2017 om 20:16 schreef Murphy, Sean:
> I've got a QTableWidget that presents data in two columns. The first column 
> is made up of QTableWidgetItems that have the Qt::ItemIsUserCheckable flag 
> enabled. The items in the second column are not checkable. What I'd like to 
> do is allow the user to click anywhere in a given row to toggle that row's 
> checkbox state, so they don't have to only click on the checkbox in column 0 
> itself.
>
> I've created my own slot, connected the QTableWidget::cellClicked(int row, 
> int column) signal to my slot, and take care of programmatically toggling 
> that row's checkbox. This almost works. It is fine EXCEPT when the user 
> actually clicks on a checkbox. In that case the checkbox takes care of 
> toggling itself first, and then my slot comes along and toggles it back to 
> its original state and the checkbox ultimate remains in its original state.
>
> Is there any way for me to detect that a click actually happened on an item's 
> checkbox so that I can just let the checkable QTableWidgetItem do its thing, 
> and skip executing my custom slot? I'm not seeing anything in the 
> documentation that allows me to differentiate the checkbox's text from the 
> checkbox itself (let alone the white space that is inside the 
> QTableWidgetItem's cell - the cell's internal margin). 
>
> The only thing I can think of at the moment is that I bump my table up to 
> three columns, splitting my current column 0 into columns 0 and 1 where:
>  - column 0 contains checkable QTableWidgetItems that have no text
>  - column 1 contains non-checkable QTableWidgetItems that have the text that 
> I current have on my items in my current column 0
>  - column 2 doesn't change from my current column 1
>
> Then in my slot, I'd just ignore clicks that happen in column 0, and toggle 
> the checkbox if the click happened in columns 1 or 2. I think this would 
> leave a small window of pixels that are inside the column 0 cell, but outside 
> the checkbox where a user could click and nothing would happen...
>
> Is there a solution to this that I'm missing?
>
I'd install an event filter on the

_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to