问题标签 [qtwidgets]
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++ - 是否可以在没有父窗口的主窗口中使用 WA_DeleteOnClose 属性?
我正在试验这个WA_DeleteOnClose
属性,它实现了我所需要的。比手动做同样的事情要整洁得多。但是,有一个问题:如果我构造 my QMainWindow
that WA_DeleteOnClose
is applied to without parent,它不会在关闭时被删除。而且,如果我确实设置了父级(QMainWindow
应用程序的主),则有问题的次要QMainWindow
会丢失其任务栏按钮,这是不可接受的。我该如何解决这个困境?
c++ - 当小部件的宽度改变时调整 QHeaderView 列的大小,同时仍然让用户调整列宽的大小
我希望用户能够手动调整列的大小,包括能够将列移动到视图边框后面,但是当视图调整大小时,我希望列按比例调整大小。有没有比resizeEvent
在标题视图上安装过滤器并手动调整列大小更简洁的决定?
更新:我什至无法让它与resizeEvent
. 这项任务比看起来要困难得多。
qt - Qt Creator 错误中的自定义 Qt 小部件示例
我是 Qt 初学者,我有 5.2.1 版本,我试图从 Github 上的一本书中学习 Qt/QML。但是,这是最基本的示例之一:
这是我得到的错误:
ln函数`_start'
未定义对“主要”的引用
collect2: ld 返回 1 个退出状态
我不知道这些是什么意思,所以任何帮助将不胜感激。我将该项目作为一个 Qt 快速应用程序。
这些都包含在.pro
文件中
c++ - 如何在 Qt/C++ 中存储加密设置?
我第一次使用 Qt 和 C++,为 Mac 做一个基于小部件的应用程序。想象一个带有设置(复选框、单选按钮、字段)的表单,然后单击更新以保存这些设置。我想将该数据保存到加密文件中,以便其他应用程序无法破解该文件。推荐的技术是什么?另外,哪种加密方法最适合这种事情?
qt - Windows 上的 QT 高 DPI 支持
根据此处的文档http://doc.qt.io/qt-5/highdpi.htmlQT 5.4+ 引入了高 DPI 支持。但是,要么我缺少一些基本的东西,要么当前的支持仍处于非常早期的阶段。我正在编写一个全新的应用程序,所以我有机会从头开始。我知道我必须使用布局而不是固定定位等,但总会有我必须指定的情况,例如控件的最小/最大尺寸。我可以在编辑器中指定它们,但这些是设备像素。因此,如果我将 Windows 设置更改为使用 150% DPI,那么编辑器中的最小值/最大值将太小。当然,我可以获取该比例并在代码中调整所有需要的值,但是如果我必须手动完成所有操作,QT 为我提供了什么样的高 DPI 支持呢?我的意思是它与 QT 5.4 之前的版本有何不同?
然后一个有趣的是 QT_DEVICE_PIXEL_RATIO 环境变量。它完全符合我的需要,它将编辑器中设置的所有像素乘以一个因子。但为什么它是环境变量而不是每个应用程序设置?为什么它只支持 2、3 等整数值,因为我们知道 Windows 有 125、150% 等设置,为什么它不能自动读取 Windows 设置并将自己设置为该值?
qt - Qt MainWindow 中的 OpenSceneGraph 集成
我有以下代码,它是 OpenSceneGraph(https://github.com/openscenegraph/osg/blob/master/examples/osgviewerQt/osgviewerQt.cpp)给出的代码的修改,用于将 OSG 与 Qt 集成:
OSGViewer.h
OSGViewer.cpp
主窗口.h
主窗口.cpp
虽然我可以在我的 MainWindow 中使用两个不同的 QWidget 来渲染两个对象,但我总是在 MainWindow 后面弹出另外两个单独的空窗口。如果我关闭它们,那么我将无法在我的 MainWindow 中渲染我的模型。任何想法如何解决这个问题?我是 OpenSceneGraph 的新手。
qt - 更改/删除 QTableWidget 选择色调颜色
我想要一个 QTableWidget,通过在单元格的图标上添加一个黑色圆圈来指示当前选定的单元格(我已经做了很多工作)。我目前正在努力解决小部件似乎对所选单元格的图标应用蓝色调的事实。我找不到任何与此相关的文档。我试过设置这个样式表:
但是这些会分别影响单元格的背景和文本颜色。我还尝试更改 QTableWidget 的 QPalette 的突出显示颜色,但没有成功。
我如何摆脱这种色调?
c++ - 是否可以在父对话框的 QGridLayout 中合并子小部件的 QGridLayout?
在编写类似网格的对话框时,我经常碰巧需要多个具有相同结构的列,列的数量只有在运行时才知道(想想同种对象的多个实例的配置参数)。
在这种情况下,常规的 Qt 小部件设计器就不够用了,因为虽然我可以轻松地设计各种标题和“原型列”,但没有简单的方法可以在运行时复制此类列的创建(所有小部件都是一起创建的) in setupUi
,并且没有简单的方法来克隆QWidget
s)。
另一种方法可能是将“原型列”拆分为单独的自定义小部件(使用 a 对齐子小部件QVBoxLayout
)并在运行时在父对话框中实例化此类自定义小部件,将这些实例放在QHBoxLayout
.
这种方法的问题在于,不同列的小部件可能最终水平未对齐,因为每个小部件都QVBoxLayout
自行执行计算而不考虑其他列,因此所需的网格布局很容易搞砸。
想到的唯一另一种可能性是将原型列拆分为单独的小部件,如上所述,但不是将自定义小部件放入 a 中,而是QHBoxLayout
“窃取”其子级并将它们正确对齐在 parent 中QGridLayout
。这会产生所需的图形效果,但是重新设置子元素并隐藏自定义小部件感觉有点像 hack。
现在,我的问题是双重的:
- 考虑到他们的“假”容器不会对它们做任何特别的事情,我可能没有意识到在愉快地重新设置这些子小部件的潜在问题吗?
- 有没有更好的方法来解决这个问题?理想情况下,我会考虑一些将
QGridLayout
子小部件与“主”网格合并的方法,但似乎没有这样的事情。
c++ - 为什么 QWidgets 是通过指针访问的?
我是 Qt5 的新手,我正在学习 QWidgets 来开发应用程序。
我在许多示例中注意到,QWidgets 几乎总是通过指针访问。例如:
这取自教程:http: //zetcode.com/gui/qt5/firstprograms/
然而,在同一页面上,我看到我们可以通过对象本身访问 QWidget 基类:
为什么必须通过指针访问所有 QWidget 派生类?为什么不需要通过指针访问 QWidget 本身?