On 28 April 2020 at 12:05:54, Jonathan Purol (cont...@folling.de <mailto:cont...@folling.de>) wrote:

Yesterday however I put my hands on trying to implement my first custom widget.

The item in question is what I would describe as a "Tag Textfield".

[…]

The last approach seemed rather clever, and it worked pretty well. I could put widgets into the textfield and align them at the left. First I tried to do this manually, then I opted for an HBoxLayout.

Sorry, I don’t really have a solution for Qt Widgets. But is QHBoxLayout really the best pick there? I would go for a “flow” layout, like the QML ‘Flow’ positioner (but you’d have to make it yourself). In this way your tags can wrap correctly according to widget’s width.

In fact this is what I did in my QML Tag Edit widget (https://github.com/fferri/QtQuick-TagsEditItem) maybe this is the shoddy one you said you already found :-D

I didn’t put too much effort in it, and it has some minor issues, as it can be seen from the screenshot. But the implementation is very simple, so one can easily pick up from that and extend it. Maybe also fixing those positioning issues is a one-liner fix (if anyone wants to contribute a fix… PRs are welcome).

Maybe you can copy and adapt the implementation to Qt Widgets.

Cheers,

Federico Ferri

Hi Jonathon,

For some reason, I didn't receive your original post.

As a starting point, I agree with Federico and suggest using the flow layout given in the Qt Layout examples qthelp://org.qt-project.qtwidgets.5127/qtwidgets/qtwidgets-layouts-flowlayout-example.html

Use a separate QLabel for each tag, and a single QLineEdit with clearButtonEnabled=true that is initially hidden.  In each label's onClick, hide the label and insert the edit with the same text immediately after it in the layout.  When the focus leaves the edit, if there is text in the edit, put the text back into the adjacent hidden label and show the label, otherwise delete the label.  Then hide the edit box.  Ensure there is always an empty label to click on at the end.

Regards, Tony


_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to