问题标签 [qt5.6]
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.
qt - 如何在qt中的QToolBar元素中更改鼠标悬停时QAction Qt的图标?
我的 QToolBar 中有一些 QActions。QAction 没有任何样式表,所以我试图在鼠标悬停时更改 QAction 图标。如何更改鼠标悬停时的 QAction 图标
android - Android下如何使用TextArea?
我正在尝试使用TextArea
控件构建一个带有一些可编辑文本的基本页面。在桌面(Windows)下一切正常,但 Android 存在一些问题。
Q5.6/windows mingw。android-23 构建,最低 API 16/目标 23 (Android 6.0)
问题是:
如果我将其子类化,
TextAreaStyle
它会破坏 Android。选择句柄消失(在其他怪异中)。使用富文本,链接不可点击,即使是
onLinkActivated
. 他们在桌面上工作正常。滚动一点后,链接下划线也会消失。Android 上没有剪切和粘贴弹出窗口。我已经看到这个作为 QT 错误发布了。在这方面有任何进展,或解决方法。我已经看到了 Qt5.4 的解决方法,但这不适用于 5.6。
main.qml:
我正在与所有这些问题作斗争,只是为了得到一个简单的文本页面。
要点代码,https://gist.github.com/anonymous/e5a9e9751e10db22695e2643e8191292
感谢您的任何帮助和建议。
c++ - Qt 5.6 的鼠标事件或位置问题
我在我们的 Qt Windows 应用程序上遇到了一个非常奇怪的 UI 问题。自从从 Qt 5.3.1 升级到 5.6.0 以来,一些小部件变得无法点击,直到我调整它们的父级(QDialog、QWizard 或简单的 QSplitter)。这包括 QPushButtons、QRadioButtons、QCheckBoxes 等。奇怪的是,这只发生在我和其他开发人员的机器上——所有其他开发人员都没有遇到这个问题。我在想这可能与安装了多个版本的 Qt(我有 4.8.、5.3.1 和 5.6.0)有关——但这似乎不太可能(而且所有其他开发人员也有多个版本)。我们在 Windows 7 上使用 VisualStudio 2015。
我附上了一些小代码,可以 100% 地为我重现问题,但可能会或可能不会在其他机器上。对我来说会发生什么,当我单击“单击”按钮并弹出 QWizard 时,我无法单击“取消”按钮(启用后也无法单击“完成”按钮)-鼠标事件似乎没有在全部。不过,我可以单击右上角的 X。如果我在任何方向调整 QWizard 的大小,那么我可以单击“取消”按钮。
一个可能的线索是,在有这个问题的 QDialogs 上,QComboBoxes 的行为也很奇怪——弹出视图显示在一个奇怪的位置(下面的屏幕截图)。同样,如果我调整父级的大小,弹出视图会显示在预期的位置。这可能表明在某处(相对位置)未正确设置位置或父对象存在一些问题,但我不确定从哪里开始。
它似乎确实与以某种方式设置父级有关,因为使用附加的示例,如果我添加向导页面:
或者
使用时:
不过,仍然不确定根本原因是什么。文件附在下面。
c++ - Qt5.6 绘制多行文字
我想绘制一个带有对齐选项的多行文本字符串,Qt 中的任何 drawText 函数都处理这个吗?
我想传递一个带有对齐选项的字符串“LINE 1\nLINE 2\nLINE 3\n”,并在指定的 X、Y 点周围绘制文本。
到目前为止,我将字符串拆分为“\n”,然后单独绘制线条。
我还需要计算绘制文本所需的边界矩形,这样我就可以创建一个带有几何图形的小部件来包含文本。
我已经搜索了一个解决方案,并在几个网站上阅读了 QPainter::drawText 将执行此操作的内容,但是当我将 drawText 与包含 \n 的字符串一起使用时,我得到一行文本,其中 \n 显示在显示器上。
c++ - QFontMetrics boundingRect
我遇到了 QFontMetrics 'boundingRect' 函数的问题,它没有返回正确的结果。
在调试器中,rctLine 包含:
这非常令人困惑,我希望 x1 和 y1 都为 0,因为没有传递参考位置,我希望 x2 和 y2 都是正数。
返回的矩形不正确,如果我将它与 drawText 和对齐一起使用,则显示中缺少部分字符串。
我知道还有其他关于此函数如何返回错误结果的帖子,我已经看过这些帖子,但它们对我没有帮助。
我在 RedHat 7.2 上使用 Qt5.6。
我也试过:
其中 pobjParent 是父小部件, rctParent 包含:
intAlign 包含 33(左,上)
在这种情况下,rctLine 返回:
但是边界矩形仍然很小,渲染时缺少部分“S”。
qt - 为样式表启用自己的小部件
我想为样式表启用我自己的小部件类,我不是在谈论setStyleSheet(qss)
qss 样式表中的选择器。据了解,我必须将命名空间中的“::”替换为“--”。
在这里(自定义小部件的 Qt 样式表)我发现了一个类似的问题,但它已经超过 4 年了。根据答案,我有一些详细的问题:
a)来自https://stackoverflow.com/a/8817908/356726的已发布方法是否paintEvent
仍然有效(Qt5.6/5.7)
b)据说在同一个线程(https://stackoverflow.com/a/22094319/356726)中,我不需要覆盖paintEvent
。好的,引导我:b1)无论如何覆盖它是否有害paintEvent
,即使使用QFrame
?b2) 其他基类是什么,例如QTableView
?是什么让QFrame
担任这个特殊角色?
c)有没有人找到关于该主题的官方 Qt 文档。很好的代码,但它来自哪里?(在这里)老实说,我不明白它的作用。
- 编辑 -
丹尼尔在这里指出了那个神奇paintEvent
片段的来源(段落)。有趣的是,同样的(“仅支持 ..”)被说成 for ,这可能意味着我也必须在那里使用该片段。我不明白为什么他们不默认将该片段添加到of中。QWidget
QDialog
paintEvent
QWidget
qt - 如何在 Qt 5.6 中在高 DPI 屏幕上使 svg 图标再次清晰
从 Qt 5.4 升级到 Qt 5.6 使我所有的 .svg 图标变得模糊/像素化。我注意到这只发生在高密度屏幕上,比如我的 MacBookPro Retina 显示器。我在 Qt 5.6 中阅读了High DPI supportQT_AUTO_SCREEN_SCALE_FACTOR=1
的文档,并设置了环境变量,但效果不大。有人有这个问题吗?我还发现了这个可能与我的问题有关的错误报告。
编辑1:
一个简单的例子是:
c++ - Mac OS X 上 Qt 小部件应用程序中的小字体
我的 Qt 小部件应用程序在 Linux 和 Windows 上运行良好。在 Mac OS X 上它可以工作,但所有字体看起来都要小得多(与 Windows/Linux 相比)。
正确调整它的最佳方法是什么?一些想法:
- 我可以使用一些“秘密”参数来获得类似的印象吗?我可以通过 API 设置 QT_AUTO_SCREEN_SCALE_FACTOR 行为吗?用于 HI DPI
- 使用样式表是全局调整整个应用程序字体的最佳方式吗?
- 我可以以某种方式计算 Windows/Max OS X 字体之间的比率,以便我知道所有 Windows
8pt
字体都必须12pt
在 Mac OS X 上吗? - 还是在 Mac OS X 上更改字体系列更好(是否有字体系列给我与 Windows / Linux 上相同的视觉印象)?
相关:我确实明白这个问题已经被问过了,但所有这些都是指更旧的 Qt 或 Mac OS X 版本。所以我才敢再次提起这个话题。
- QT Framework QML Application fonts too small on Mac OS X 5 years old, no answer
- Qt 跨平台 Windows 和 Mac:字体大小
- Mac OS X 上的 Qt 字体系列和样式
编辑:视觉印象
不幸的是,我手头没有完美的截图,但这就是它的样子。Windows 和 Linux 版本几乎像素相同。Mac 字体显得太小(MAC OS X 右侧,Windows 左侧),在整个应用程序中都是一样的(表格视图,....)
目前我确实通过样式表设置字体。所以字体是8pt
,没有像素大小。当我12pt
在 Mac OX X 上将其设置为(反复试验)时,表示近似于 Windows/Linux。
c++ - 使用继承信号解决 Q_PROPERTY NOTIFY
众所周知,继承的信号不能用作Q_PROPERTY
NOTIFY
er ( https://bugreports.qt.io/browse/QTBUG-7684 )。作为一种解决方法,我在派生类中使用了一个额外的信号,该信号在基信号被触发时被触发。基类:
对于派生类:
有没有更好/更优雅的解决方案来做到这一点?
c++ - 从 C++ 中检测静态添加的 QML 子项
QML 代码:
C++代码:
这是一个关于这个问题的旧讨论:http: //comments.gmane.org/gmane.comp.lib.qt.qml/1677
如何检测到这些静态声明项的添加?