Domanda su QMouseEvent e QLineEdit



  • Mi serve controllare se un oggetto QLineEdit viene cliccato per attivare disattivare la scrittura su quel campo, per cui pensavo di usare QMouseEvent.
    Ho creato un progetto con QtCreator nel .h della classe principale che gestisce il form ho dichiarato come da esempio di scribble (tutorial)

    pippo.h

    @ #include <QMouseEvent>
    ......
    class Pippo : public QMainWindow
    {
    Q_OBJECT

    public:
     ......
    
     protected:
     void mousePressEvent(QMouseEvent *event);
    
     private:
     .......  @
    

    poi in pippo.cpp

    @void Pippo::mousePressEvent(QMouseEvent *event)
    {
    qDebug() << "entro in mousePressEvent()";
    if (event->button() == Qt::LeftButton)
    {
    ......qui vorrei testare il focus di qlineEdit .... @

    (auto correzione) entra in mousePressEvent ma siccome di default lineedit_MioCampo è disabled (setEnabled(false)) non so come fare a testare che ho cliccato proprio il line_edit che vogllio rendere enabled.
    cioè pensavo che hasfocus fosse un attributo che potesse passare tramite click anche in caso di lineEdit disabled
    Forse sto sbagliando in linea di principio, dato che i lineEdit che voglio attivare disattivare sono più d'uno.

    Sono su linux arch e uso Qt Creator 3.2.0
    ciao e grazie



  • su questo pc non ho una gui da provare su creator .... ma credo di ricordare che eiste il flag readonly ..... di conseguenza non ti serve il flag enabled off ..... in questo modo puoi continuare ad utilizzare il mouse event.
    Semplicemente passerai da readonly on a off....



  • il problema è che c'è più di un lineEdit che deve diventare readOnly si/no, quindi devo associare il pulsante destro a "quel" lineEdit in mezzo a più d'uno.
    Ho visto che si può fare una classe derivata di qlineEdit ma non ho capito come fare con qtcreator e come associarlo al lineEdit del form del progetto.

    ciao (e grazie della risposta)



  • bhe di solito basta dare un nome alle qline E ...... tipo le1 ..... le2....etc etc.....per la classe derivata ...... cosa vorresti fare una classe ogni qline edit? ti troveresti con un progetto corpo setto..... oltre al fatto che e inutile. comunque DS qcrestor basta andare sul menu di destra cliccare la tua QLE tasto destro e trovetai il menu adatto .... de hai già una classe dovrai pruovere il tuo oggetto alla classe xxxxx.... per le classi derivate ci sono diversi tutorial .... in linea di principio crei nuovo widget con classe c++ da creator e poi ne correggi gli header.



  • Hello,

    Hai provato ad usare un menù a popup?
    Premendo il dx fai visualizzare un item per ogni lineEdit, cliccando sul corrispondende lo disabiliti


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.