I am using Qt via PySide6/PyQt to create a QTextEdit widget which fills the main window. As it accumulates text from the user, I would like to dynamically zoom out (using .zoomIn / .zoomOut) to keep all the text visible on screen at once.
I am not quite sure how to go about detecting if the text is overflowing in the text box.
Is there a Signal for this or some other obvious way to detect this that I am not seeing?
Related
We designed a web interface to display text in a scrollable element and to track scrolling events when someone scrolls to read the text. We set the textual display features using CSS. Now we have a record of what text was displayed, and a record of what the window size was (or sized if the user re-sized the window at some point). All events are timestamped. We want to develop a record of how long each portion of the text was displayed to the user as they navigated by scrolling. I thought there would be many examples of code to do this, but I don't find anything.
So, can someone refer me to a resource of how I might be able to calculate based on the font size, line width/height settings, and display size of a scrollable text window, how to determine which range of the text was displayed given a certain scrolling indicator?
Many thanks for any leads.
I have a rectangle with some text on it defined as a button symbol.
My problem when using the button is that the rectangle does NOT resize but keeps its dimensions. And when I resize the button the text font changes too.I have buttons with short text and some with very long texts. Currently the ones with long text the rectangle is not long enough to accommodate the whole text.
Anybody know how to make a button grow or shrink with text one enters at instance level?
I ended up duplicating the button symbol and making the rectangle much bigger as I found now way of scaling whatever symbol background scale with the text
i am trying to accomplish the following behavior with a QML TextArea:
I want single Words in the Text to be colored differently
I want the "select"-functions to be working for automated scrolling (user interaction is disabled)
There is a stream of text in the TextArea where one Word needs to be selected(highlighted). The user is requested to input some text elsewhere and press enter to proceed (not part of the question). After that the selection jumps to the next word and the last selected word is either colored green or red. There is only a small portion of the text visible (a few lines, managed by the TextArea height – not part of the question) and i need the text to scroll if the next word is out of that visible range .. therefore the selection is quite helpful because all interaction from the user – to scroll or select or whatever – is disabled (disabling is not part of the question)
my main problem is: if i use textFormat: TextEdit.RichText i can easily color the text how i like it to be (<font color=\"green\">{}</font>) but i cannot use the "select"-functions anymore because – as i would guess – the selection works on the "plaintext" and cannot correspond to the "richtext"-selection? Anyway selectWord() etc. does not work QTextCursor::setPosition: Position '-1' out of range is the result. But if i disable the RichText i don't know how to color the text. Maybe i could live without the selection if i could detect the current word – which would be colored blue etc. – and scroll if its out of the visible area to "fake" the selection behavior, but that's just a third option.
I would really either know how to color non-Rich Text or how to select Rich Text in a TextArea.
You can use QSyntaxHighlighter to highlight the words independent of the selection. See QQuickTextDocument and How to implement rich text logic on QML TextEdit with QSyntaxHighlighter class in Qt for more details.
I have a Qlabel with image as rich text and some other Qlabels on top of that as in the picture:
although I sent the Qlabel with image to back but when I run they appear as follows:
is there anyway to fix this?
Make the text labels children of the label containing the fade. Also I can not see any layouts. Did you use layouts? You could also put the fade on the widget by implementing its paintEvent(). All other widgets will be displayed on top of that.
Try right clicking the image label and clicking the send-to-back option. That might work. That should send the QLabel behind the other elements even though they appear as though they are already in front.
Is there any way to create a textInput box for flex mobile with inline image without using textflow ?
Basically i need a text input component , so that user can just use it as normal text input box but to it images can also be entered inline with text. To enter images user can select the image from list and that image will get inserted at the current cursor position.
If you look at any platform, there is no user experience (as far as I've seen) that lets you add images in the text input box. It's always been straight text, except for android which replaces certain text with icons (like :-) becomes an android icon). I don't think your users would expect that behaviour. If you really do need it, I would recommend you create a custom skin for your textinput box and add that feature into it, but it won't be easy to do.