问题标签 [qt5.12]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
147 浏览

c++ - 如何以编程方式停止在 Qt 中编辑 QTreeWidget?

我有一个QTreeWidget和两个按钮“+”和“-”。当我按“+”时,我想将新项目添加到 QTreeWidget 并且我希望该项目处于编辑模式。我设法用以下代码做到了这一点(每次按下“+”时都会调用它):

问题是当我尝试添加新项目时,但在添加之前不要退出编辑模式(按 Enter 或其他键)。我收到错误edit: editing failed,新项目添加到当前项目下方(仍处于编辑模式)。

我想要的是当前项目存在编辑模式,并且新添加的项目成为焦点并进入编辑模式。

我试图通过首先获取 a 中的最后一项QTreeWidget并调用closePersistentEditor(lastItem)(注释代码)然后创建和添加新项目来做到这一点,但它没有用。那么,如何关闭当前打开的项目编辑?

编辑:好的,我添加了带有最小示例的附加代码。要构建它,您唯一需要做的就是添加QTreeWidgetQPushButton到表单mainwindow.ui并将该按钮连接到on_btnAdd_clicked()

EDIT2:这发生在带有 Qt 5.12 的 macOS (Mojave) 上。

0 投票
1 回答
2038 浏览

qt - QML中Window和ApplicationWindow的区别?

https://doc.qt.io/qt-5/qml-qtquick-controls2-menubar.html

MenuBar 在中受支持,ApplicationWindowWindow.

以下引发错误“无效的属性名称:MenuBar”

而以下工作:

在新的 Qt 版本 5.12 中,默认代码使用Window而不是ApplicationWindow.

Window和 和有什么不一样ApplicationWindow?在什么情况下应该使用哪一个?

0 投票
0 回答
334 浏览

qt - OpenGL ES Framebuffer 大小格式无效

将嵌入式 Qt 5.9.8 应用程序升级到 Qt 版本 5.12.8 后,我收到警告“设置帧缓冲区大小仅适用于 DRM 原子 API”。该应用程序在 i.MX6 Solo System On Module(OS Yocto Warrior Linux,内核 4.19)上运行。

我通过设置环境变量 QT_QPA_EGLFS_KMS_ATOMIC 修复了这个警告。然后我得到“帧缓冲区大小格式无效”。

如何设置帧缓冲区大小格式?

我试图用 QT_QPA_EGLFS_PHYSICAL_WIDTH 和 QT_QPA_EGLFS_PHYSICAL_HEIGHT 来解决它。但我仍然收到警告。

0 投票
1 回答
80 浏览

c++ - 如何显示从 TCPsokcet 接收的图像并在 QML 中显示

我想将完整的管道实现为:

opencv(Linux平台上的clientapp) ---socket---> QT(QT平台上的server opencv) 通过socket使用opencv c++函数传输图像,并在QMl中显示图像。

我已经使用 Q_INVOKABLE 从 qml 调用了 opencv c++ 函数,但是如何将 QImage 从 c++ 函数发送到 QML 文件进行显示。

0 投票
0 回答
111 浏览

qt - 在 travis-ci linux 上安装 Qt5.12

尝试Qt5.12travis-cilinux 上安装时看到以下错误。有人请帮忙

0 投票
0 回答
11 浏览

c++ - 调试错误!...断言:“!上下文||(QOpenGLContest::currentContext()

我们将 Qt4.8更新为Qt5.12。现在,当我在桌面上中止我们的程序时,我收到以下调试错误。

qquickwidget.cpp看起来有问题。

此错误消息的原因是什么,我该如何解决?

谢谢

0 投票
1 回答
133 浏览

c++ - 5.15.2 与 5.12.3 中的 Qt 虚拟键盘断言错误

我最近将我的 Qt 版本5.12.35.15.2. 我在 QML 中使用 .qt 虚拟键盘重建了一个应用程序InputPanel {}。虚拟键盘在 main 中定义为qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));. 一切都在发布模式下工作,但是当我在调试模式下运行时,我从 qt creator 获得以下应用程序输出:

我在Github上检查了 5.15.2 的源文件,行号指向方法void QVirtualKeyboardInputContextPrivate::registerInputPanel(QObject *inputPanel)with Q_ASSERT(!this->inputPanel);. 我想将此方法与5.12.3 的 Github 进行比较,但看起来此方法是在之后添加的,5.12.3因此我之前没有看到错误。

现在,我的理解是当标志为假时Q_ASSERT(bool)会调用。qFatal()如果inputPanel是类型QObject*应该 Q_ASSERT 是Q_ASSERT(this->inputPanel)?Q_ASSERT 应该只在指针为空指针时触发。或者我只是很困惑?

0 投票
1 回答
72 浏览

qt - QCursor::pos(); 呈现错误的坐标

我有一个应该跟随鼠标的浮动小部件。现在我有另一个小部件,它有时会改变它的位置。

在任何其他小部件调整大小之前,一切正常。更改后我的坐标总是误入歧途并且浮动小部件被移动,它漂浮在离鼠标一定距离的地方。我注意到这种转变以某种方式与窗口大小有关,当尺寸变大时它会增长。

我用 传递给小部件鼠标坐标QCursor::pos();,我还尝试QPoint从其他背景小部件发送,它应该在上面浮动,mouseMoveEvent(QMouseEvent *event)然后QPoint{ mapToGlobal( { event->pos() } )};。它们都渲染相同的坐标,并且发生相同的移位。

例如在一个小窗户上

  • 漂浮物的坐标QPoint(255,136)
  • 另一个小部件的坐标: QPoint(0,0)
  • 来自另一个小部件的 MapToGlobal:QPoint(255,136)

在一个大窗口上:

  • 漂浮物的坐标 QPoint(205,86)
  • 另一个小部件的坐标:QPoint(0,0)
  • 来自另一个小部件的 MapToGlobal:QPoint(205,86)

无法掌握问题,为什么它会渲染错误的坐标。该系统是Qt 5.12.3。任何帮助将不胜感激。


UPD:最小的可重现示例。

。H

.cpp

0 投票
0 回答
19 浏览

qt - 如何伪造 QWheelEvent 进行测试?

我需要用 googletest 一个函数进行测试:

我如何伪造这个事件以通过测试?

0 投票
2 回答
83 浏览

qt - 如何获得带有枚举的 QDialog 的子项(访问按钮)?

我有一个按钮,以这种方式分配给QDialog

作为一个孩子,我如何从 QDialog 中获得它?

我想使用:

findChild<T>需要一个QString。

有什么建议么?