voglio usare il segnale itemDoubleClicked(QTreeWidgetItem*,int)
in un Haskell programma sto scrivendo dove sto utilizzando qtHaskell per la GUI. Per collegare una funzione ho in altri luoghi eseguito le seguenti:Come utilizzare il segnale `itemDoubleClicked (QTreeWidgetItem *, int)` in qtHaskell
dummyWidget <- myQWidget
connectSlot object signal dummyWidget "customSlot()" $ f
Dove object
è qualche QWidget
e signal
è una stringa che rappresenta il segnale, ad esempio "triggered()"
e f
è la funzione che si desidera chiamare quando viene inviato il firmatario. La definizione di connectSlot
nella API è:
class Qcs x where
connectSlot :: QObject a -> String -> QObject b -> String -> x -> IO()
in cui le istanze di Qcs
sono:
Qcs()
Qcs (QObject c -> String -> IO())
Qcs (QObject c -> Object d -> IO())
Qcs (QObject c -> Bool -> IO())
Qcs (QObject c -> Int -> IO())
Qcs (QObject c -> IO())
Qcs (QObject c -> OpenGLVersionFlag -> IO())
I primi Argomenti passati si suppone essere il QObject
di cui io sto usando un segnale. Come potete vedere, non c'è istanza dove f
, la funzione per connettersi al segnale, può avere due ulteriori argomenti per ricevere lo QWidget
e l'intero inviato dal segnale. C'è un modo per collegare questo segnale a una funzione personalizzata?
qtHaskell è praticamente inutilizzato. Non conosco applicazioni di esempio per questo. Perché non usare gtk2hs o wxHaskell - c'è molta più documentazione. –
Beh, mi piace Qt, e qualcuno deve essere il primo, suppongo. Fino al punto in cui volevo usare quel segnale, funzionava abbastanza bene. Se non ci sono soluzioni suppongo che userò gtk2hs se deve esserlo. – nano
@Don Stewart, in effetti se qualcuno che cerca di usare qtHaskell è consigliato di passare a gtk2hs, qtHaskell rimarrà inutilizzato :) @nano, ti suggerisco di chiedere all'autore, forse lui sarà in grado di aiutarti. –