- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 cpp 应用程序有一个 QMainWindow 派生类,在 ui 中有 QQuickView 小部件。 View 内有许多接受键盘输入的 QML 项。单击某个项目时,我会在单击的项目上调用 forceActiveFocus()。从我启动应用程序到我切换到另一个窗口,这一切都有效。
如果我切换到另一个应用程序然后返回,或者切换到我的应用程序中的另一个窗口并返回,则调用 forceActiveFocus() 无效。这些项目有几种不同的类型,但这里是一个示例项目:
TextInput {
id: textInput
anchors.fill: parent
inputMethodHints: Qt.ImhFormattedNumbersOnly
onActiveFocusChanged: console.log(activeFocus)
onEditingFinished:
{
}
MouseArea {
anchors.fill: textInput
onClicked: {
textInput.forceActiveFocus()
console.log("clicked")
}
}
}
QQuickView
时出现这个问题。这是使用 QML 的 QML 应用程序
Window
与以下
main.qrc
,这工作得很好:
import QtQuick 2.7
import QtQuick.Window 2.2
Window {
color: "lightblue"
Rectangle {
id: textInputRect
color: "white"
height: 50
width: 150
anchors.centerIn: parent
TextInput {
id: textInput
anchors.fill: parent
inputMethodHints: Qt.ImhFormattedNumbersOnly
onActiveFocusChanged: console.log(activeFocus)
onEditingFinished:
{
}
}
}
}
QMainWindow
的 CPP 应用程序具有
QQuickView
的派生类ui 中的小部件。此版本表现出问题行为。这是
main.qrc
:
import QtQuick 2.7
import QtQuick.Window 2.2
Rectangle {
anchors.fill: parent
color: "lightblue"
Rectangle {
id: textInputRect
color: "white"
height: 50
width: 150
anchors.centerIn: parent
TextInput {
id: textInput
anchors.fill: parent
inputMethodHints: Qt.ImhFormattedNumbersOnly
onActiveFocusChanged: console.log(activeFocus)
onEditingFinished:
{
}
}
}
}
main
:
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QLatin1String("qrc:/main.qml")));
MainWindow window;
QQuickView* view = new QQuickView;
window.setView(view);
window.show();
return app.exec();
}
QQuickView
在
MainWindow
:
void MainWindow::setView(QQuickView *value)
{
view = value;
QWidget *container = QWidget::createWindowContainer(view, this);
view->setSource(QUrl("qrc:/main.qml"));
ui->verticalLayout->addWidget(container);
}
最佳答案
好的,这是 QTBUG-34414 .在该错误的评论底部发布了一个解决方法。在切换到我的应用程序的其他窗口或其他应用程序的情况下,发布的解决方法为我解决了这个问题。关闭对话框后仍然没有焦点。将此覆盖放在我的窗口类中可以解决这两种情况的问题:
bool MyWindow::event(QEvent *event)
{
if (event->type() == QEvent::ActivationChange ||
event->type() == QEvent::WindowUnblocked) {
if(view->isActive()) { //view is pointer to my QQuickView
window()->activateWindow();
return true;
}
}
// handle events that don't match
return QWidget::event(event);
}
关于qt - QQuickView,切换窗口后没有键盘焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40849281/
我的 cpp 应用程序有一个 QMainWindow 派生类,在 ui 中有 QQuickView 小部件。 View 内有许多接受键盘输入的 QML 项。单击某个项目时,我会在单击的项目上调用 fo
我需要做的是将图像(作为 QImage 对象提供)添加到自定义 QQuickItem。我覆盖了 updatePaintNode() 函数并添加了几个节点,其中一个应该有一个三角形的子注释。我想通过使用
我在使用此示例调整窗口大小时遇到问题。它有效,但当它变得无响应时无法预测。窗口最小化和最大化每次都有效,但使用鼠标调整大小会导致奇怪的卡住行为。发生在使用 Qt 5.12.0 的 Windows
当使用 g++ -fsanitize=address 编译时,我得到一个新的删除类型不匹配。这段代码有错吗?或者这是一个 Qt 错误? 我在一个大型应用程序中发现了这个并将其分解为以下代码。我想用 Q
我正在尝试将 QMLview 嵌入到 QWidget 中。我成功地在主窗口内显示了 View ,没有任何问题,但是每当我调整它的大小时,qml View 都没有更新。 View 未正确调整大小 这是绘
我试图在每次使用 QTQuick 在 C++ 中单击按钮时向我的窗口添加一个元素。 我有一个 C++ 类: 自定义类.cpp void CustomClass::clicked() { QQu
我目前正在为一个在后台使用 openGL 渲染的触摸设备实现一个 QML 应用程序。我用这个讲https://www.youtube.com/watch?v=GYa5DLV6ADQ作为我工作的基础。
我正在将一些 Qt(C++ 和 QML)代码从 Qt4.8 升级到 Qt5.1。 Qt4.8 代码是一个简单的 C++“QML 查看器”应用程序,子类化了 QDeclarativeView ,还有一堆
我正在使用 QQmlApplicationEngine如下: QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine
我正在尝试创建一个嵌入现有 QWidget 窗口内的 QQuickView 子窗口。下面的代码我创建了一个新的单独的 QQuickView 窗口而不是子窗口。 主要.cpp subWindow::su
当用户在使用 QQuickWidget 时单击窗口上的其他位置时,ToolTip 和 ComboBox 组件不会关闭,但在使用 QQuickView 时它们会关闭(ToolTip 消失并且组合框的弹出
我正在尝试将一些 QML/Qt Quick 2 元素集成到 Qt 5.4 c++ 应用程序中。到目前为止,我已经能够在 Qt 窗口中完全按照我的意愿显示我的 QML 元素,但是我在随机时间遇到一些闪烁
有没有办法用字符串数据加载QQuickView?据我所知,只有 void QQuickView::setSource(const QUrl & url)。 我可以加载带有字符串数据的QQmlCompo
将 qml 文件重新加载到 QQuickView 的正确方法是什么?我正在使用 Qt Quick 2.1 并尝试编写一个简单的程序来加载 qml 文件并显示它。目前我正在通过创建一个 QQuickVi
我使用 pyqt5 编写了简单的 hello world。但是当我启动它时出现错误: QQuickView only supports loading of root objects that der
我目前正在使用 Qt 5.2.1...并且我有一个(可能是愚蠢的?)问题:QQuickView 和 QQuickWindow 之间有什么区别? 我阅读了文档,但我仍然不清楚...... 最佳答案 来自
我想继承 QQuickItem 而不是 QQuickView 来使用 QQuick 类在 C++ 中编写界面。根据 Qt 文档中提供的解释,我了解到 QQuickView 加载 qml。QQuickV
我正在尝试在我的 MyApplication 中捕捉一个关闭事件继承自 QApplication 的实例或在我的WindowQML继承自 QQuickView 的实例.目标是在真正关闭应用程序之前要求
目前,我正在开发一个需要集成到 C++ Visual Studio 项目中的 Qt 类。 Qt project - Qt Widgets Application. Build on Qt Creato
我想抓取我的 QML 应用程序的屏幕。但是我的根 QML 对象是 ApplicationWindow ,所以我不能使用 QQuickView显示它。相反,我必须使用 QQmlApplicationEn
我是一名优秀的程序员,十分优秀!