Qt: TreeView default delegate mit setPlaceholderText("")



  • Hallo zusammen,

    gibt es eine einfache Möglichkeit dem default delegate eines QTreeView
    einen setPlaceholderText("<text>") mitzugeben?

    An sich ist es ja bereits ein QLineEdit, jedenfalls sieht es so aus.

    Oder muss ich da umständlich ein eigenes Delegate erstellen?



  • Hab mir schnell was gebaut. Da bei einem delegate der Cursor direkt im Feld steht
    klappt das eh nicht, was ich haben wollte.

    class TestDelegate: public QStyledItemDelegate {
    Q_OBJECT
    public:
      TestDelegate(QObject *parent=0);
      virtual ~TestDelegate();
      virtual QWidget* createEditor( QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
    };
    
    TestDelegate::TestDelegate(QObject *parent) : QStyledItemDelegate(parent) {
    
    }
    
    TestDelegate::~TestDelegate() {
    
    }
    
    QWidget* TestDelegate::createEditor( QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const {
      QWidget* widget = QStyledItemDelegate::createEditor(parent, option, index);
    
      QLineEdit *le = qobject_cast<QLineEdit*>(widget);
      if (le)
        le->setPlaceholderText("test");
      return widget;
    }
    

Anmelden zum Antworten