问题标签 [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.
c++ - 如何以编程方式停止在 Qt 中编辑 QTreeWidget?
我有一个QTreeWidget
和两个按钮“+”和“-”。当我按“+”时,我想将新项目添加到 QTreeWidget 并且我希望该项目处于编辑模式。我设法用以下代码做到了这一点(每次按下“+”时都会调用它):
问题是当我尝试添加新项目时,但在添加之前不要退出编辑模式(按 Enter 或其他键)。我收到错误edit: editing failed
,新项目添加到当前项目下方(仍处于编辑模式)。
我想要的是当前项目存在编辑模式,并且新添加的项目成为焦点并进入编辑模式。
我试图通过首先获取 a 中的最后一项QTreeWidget
并调用closePersistentEditor(lastItem)
(注释代码)然后创建和添加新项目来做到这一点,但它没有用。那么,如何关闭当前打开的项目编辑?
编辑:好的,我添加了带有最小示例的附加代码。要构建它,您唯一需要做的就是添加QTreeWidget
和QPushButton
到表单mainwindow.ui
并将该按钮连接到on_btnAdd_clicked()
:
EDIT2:这发生在带有 Qt 5.12 的 macOS (Mojave) 上。
qt - QML中Window和ApplicationWindow的区别?
https://doc.qt.io/qt-5/qml-qtquick-controls2-menubar.html
MenuBar 在中受支持,ApplicationWindow
在Window
.
以下引发错误“无效的属性名称:MenuBar”
而以下工作:
在新的 Qt 版本 5.12 中,默认代码使用Window
而不是ApplicationWindow
.
Window
和 和有什么不一样ApplicationWindow
?在什么情况下应该使用哪一个?
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 来解决它。但我仍然收到警告。
c++ - 如何显示从 TCPsokcet 接收的图像并在 QML 中显示
我想将完整的管道实现为:
opencv(Linux平台上的clientapp) ---socket---> QT(QT平台上的server opencv) 通过socket使用opencv c++函数传输图像,并在QMl中显示图像。
我已经使用 Q_INVOKABLE 从 qml 调用了 opencv c++ 函数,但是如何将 QImage 从 c++ 函数发送到 QML 文件进行显示。
qt - 在 travis-ci linux 上安装 Qt5.12
尝试Qt5.12
在travis-ci
linux 上安装时看到以下错误。有人请帮忙
c++ - 5.15.2 与 5.12.3 中的 Qt 虚拟键盘断言错误
我最近将我的 Qt 版本5.12.3
从5.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 应该只在指针为空指针时触发。或者我只是很困惑?
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
qt - 如何伪造 QWheelEvent 进行测试?
我需要用 googletest 一个函数进行测试:
我如何伪造这个事件以通过测试?
qt - 如何获得带有枚举的 QDialog 的子项(访问按钮)?
我有一个按钮,以这种方式分配给QDialog:
作为一个孩子,我如何从 QDialog 中获得它?
我想使用:
但findChild<T>
需要一个QString。
有什么建议么?