Я пытаюсь создать упрощенный текстовый редактор (или клон приложения для заметок) для настольных компьютеров и Android. В качестве минимального воспроизводимого примера у меня есть центральный виджет с QVBoxLayout, который содержит QTextEdit.
На мобильном телефоне (я тестировал только свой телефон Android) QTextEdit изначально изменяет размер до оставшегося доступного пространства, когда видна клавиатура Android, добавляя при необходимости полосу прокрутки для более длинных текстов - это и есть предполагаемое поведение.
Но при редактировании, если я вставляю новую строку или перемещаюсь при перемещении курсора вверх или вниз на строку QTextEdit «вырастает» обратно до полноэкранного размера и отображает текст и пользовательский интерфейс под клавиатурой.
В качестве еще одной меры я попробовал добавить второй виджет в QVBoxLayout. Конечно же, сначала он виден над клавиатурой, когда вводится текст, но затем исчезает под клавиатурой, когда я нажимаю Enter или перемещаю курсор.
Иногда я могу вернуть его в правильное положение/раскладку/размер, если закрываю и снова открываю клавиатуру, но это также несовместимо.
Как сделать так, чтобы QTextEdit (и любой виджет в целом) не изменял размер или не увеличивался, когда экранная клавиатура Android открыта все еще активен?
Минимальный пример
widget.h:
#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
widget.cpp:
#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;
}
main.cpp:
#include "widget.h"
#include
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... on-android
QTextEdit уходит под клавиатуру при редактировании на Android ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1771275762
Anonymous
Я пытаюсь создать упрощенный текстовый редактор (или клон приложения для заметок) для настольных компьютеров и Android. В качестве минимального воспроизводимого примера у меня есть центральный виджет с QVBoxLayout, который содержит QTextEdit.
На мобильном телефоне (я тестировал только свой телефон Android) QTextEdit изначально изменяет размер до оставшегося доступного пространства, когда видна клавиатура Android, добавляя при необходимости полосу прокрутки для более длинных текстов - это и есть предполагаемое поведение.
Но при редактировании, если я вставляю новую строку или перемещаюсь при перемещении курсора вверх или вниз на строку QTextEdit «вырастает» обратно до полноэкранного размера и отображает текст и пользовательский интерфейс под клавиатурой.
В качестве еще одной меры я попробовал добавить второй виджет в QVBoxLayout. Конечно же, сначала он виден над клавиатурой, когда вводится текст, но затем исчезает под клавиатурой, когда я нажимаю Enter или перемещаю курсор.
Иногда я могу вернуть его в правильное положение/раскладку/размер, если закрываю и снова открываю клавиатуру, но это также несовместимо.
Как сделать так, чтобы QTextEdit (и любой виджет в целом) не изменял размер или не увеличивался, когда экранная клавиатура Android открыта все еще активен?
[b]Минимальный пример[/b]
widget.h:
#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
widget.cpp:
#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;
}
main.cpp:
#include "widget.h"
#include
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79865474/qtextedit-goes-under-keyboard-when-editing-on-android[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия