[Eric] Fwd: Re: PyQt-Slot for QtWidget (QComboBox) created during runtime
GM
mossl at gmx.net
Mon Sep 24 09:34:15 BST 2018
-------- Weitergeleitete Nachricht --------
Betreff: Re: [Eric] PyQt-Slot for QtWidget (QComboBox) created during
runtime
Datum: Sun, 23 Sep 2018 16:05:18 +0200
Von: GM <mossl at gmx.net>
An: serge <gauthier.sg at gmail.com>
Serge,
!!! THX !!!
it really works like a charm!
have a nice remaining weekend!
george
Am 23.09.2018 um 15:35 schrieb serge:
> Hi George,
>
> You have to derivate your own comboBox class like this:
>
> class comboBoxProduit(QComboBox):
> '''
> Classe dérivée pour combobox rang produit
> '''
> curIndexChanged = pyqtSignal(int, int)
>
> #
> ------------------------------------------------------------------------------------
> def __init__(self, parent, row):
> super(comboBoxProduit, self).__init__()
> self.parent = parent
> self.row = row # rangée de la table
> self.currentIndexChanged.connect(self.emetEvent)
>
> #
> ------------------------------------------------------------------------------------
> def emetEvent(self, index):
> self.curIndexChanged.emit(index, self.row)
>
> and after when you add the comboBox cb in the table:
>
> cb.curIndexChanged.connect(self.selectRangChange)
>
> and declare the function associated in the dialog file:
> #
> -----------------------------------------------------------------------------------
> def selectRangChange(self, index, row):
> .....
> ....
>
> Regards
> Serge
>
>
>
> Le 23/09/2018 à 14:39, GM a écrit :
>> Hi @all,
>>
>> I've created a dialog-window with an QTableWidget. Users can add a
>> row by using a pushbutton. In a cell of the new row appears a
>> QComboBox. How can changes of this QComboBox trigger a function?
>>
>> It's no problem for to text-only-cells (I can use:
>>
>> @pyqtSlot(int, int)
>> def on_tableWidgetX_cellChanged(self, row, column):
>> print("cell changed: ", row, column)
>>
>> which works as intended.)
>>
>> Functions like
>>
>> @pyqtSlot(QComboBox)
>> def on_tableWidgetX_itemChanged(self, item):
>> print("OK1")
>>
>> @pyqtSlot(QComboBox)
>> def on_tableWidgetX_itemClicked(self, item):
>> print("Ok2")
>>
>> never recieve a signal.
>>
>> I think the QComboBox can not send a aignal. Originally the "Generate
>> Dialog Code..."-dialog suggests to pass a "QTableWidgetItem*" to the
>> pyqtSlot, but this Item is created during runtime, so it can not be
>> found in the Ui_Dialog...
>>
>> Any suggestions?
>>
>>
>> george
>>
>> _______________________________________________
>> Eric mailing list
>> Eric at riverbankcomputing.com
>> https://www.riverbankcomputing.com/mailman/listinfo/eric
>
>
--
Georg Mößlacher
+43-664-735 69 327
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/eric/attachments/20180924/79947628/attachment.html>
More information about the Eric
mailing list