gpt4 book ai didi

android - 在 android 的 QTextEdit 中选择

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:05:25 25 4
gpt4 key购买 nike

我正在 Qt5.11 上制作具有 QTextEdit 组件文本编辑功能的应用程序。它在桌面上运行良好:用户可以选择和编辑文本,我可以通过自己的操作更改上下文菜单——一切都很棒。

但在 android 平台上它有点坏了。用户可以通过触摸设置光标位置,但不能选择整个单词或文本范围。如果我以编程方式设置选择,则 android 键盘将隐藏。之后,如果我单击选择,则会出现范围转换器以及带有禁用的“复制”、“剪切”和“粘贴”按钮的奇怪顶部面板。此外,如果我按住手指几秒钟,屏幕上就会出现一个“粘贴”按钮。我看不到任何隐藏它、防止它出现或添加自定义按钮的方法。

我尝试过 QWidgets 项目、QML Quick 项目甚至“Qt Quick Control 2 - 文本编辑器”示例。总是有相同的行为。

看起来 QTextEdit 具有所有必要的功能,但由于某种原因它不能正常工作并且没有控制。

我想到的最佳解决方案是使 MouseArea 透明并手动处理所有触摸。但这是正常的吗?!

最佳答案

在 Qt 5.8 到 5.11 中,自动文本选择句柄对我来说似乎有点问题。也许最好简单地禁用它们,然后添加您自己的手动剪切/复制/粘贴按钮。至少,目前,直到 Qt 在未来的版本中正确使用它们。

通过深入挖掘 Qt 平台抽象代码,我发现了一个未记录的环境变量,您可以设置该变量以禁止显示文本选择句柄。方法如下:

int main(int argc, char *argv[])
{
#ifdef Q_OS_ANDROID
qputenv("QT_QPA_NO_TEXT_HANDLES", "1");
#endif
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}

关于android - 在 android 的 QTextEdit 中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51237094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com