Auf Mobilgeräten (ich habe nur mein Android-Telefon getestet) passt sich das QTextEdit zunächst an den verbleibenden verfügbaren Platz an, wenn die Android-Tastatur sichtbar ist, und bringt bei Bedarf eine Bildlaufleiste für längere Texte ein – was beabsichtigt ist.
Aber beim Bearbeiten, wenn ich eine neue Zeile einfüge oder Bewegen Sie den Cursor um eine Zeile nach oben oder unten, „wächst“ der QTextEdit wieder auf seine Vollbildgröße zurück und rendert Text und Benutzeroberfläche unter der Tastatur.
Als weitere Maßnahme habe ich versucht, dem QVBoxLayout ein zweites Widget hinzuzufügen. Tatsächlich ist es zunächst über der Tastatur sichtbar, wenn Text eingegeben wird, verschwindet dann aber unter der Tastatur, wenn ich die Eingabetaste drücke oder den Cursor bewege.
Manchmal kann ich es wieder in die richtige Position/Layout/Größe bringen, wenn ich die Tastatur schließe und wieder öffne, aber das ist auch nicht konsistent.
Wie sorge ich dafür, dass die Größe von QTextEdit (und jedes Widget im Allgemeinen) nicht geändert oder vergrößert wird, wenn die Android-Bildschirmtastatur still steht? aktiv?
Minimalbeispiel:
widget.h
Code: Select all
#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
class Widget : public QWidget {
Q_OBJECT
QTextEdit* child;
QLayout* layout;
public:
Widget(QWidget *parent = nullptr);
~Widget();
};
#endif // WIDGET_H
Code: Select all
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
child = new QTextEdit();
layout = new QVBoxLayout();
layout->addWidget(child);
setLayout(layout);
}
Widget::~Widget() {
delete layout;
delete child;
}
Code: Select all
#include "widget.h"
#include
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
Mobile version