问题标签 [qt4.7]

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 投票
2 回答
29736 浏览

qt - 如何在 Qt 中获取系统默认字体设置?

我正在使用 Qt 构建一个桌面应用程序,我的开发机器是 win 7 x64 with Japanese locale,标准系统字体是Meiryo。大多数win 7 UI都是这种字体,虽然经典/旧程序(如ui字体自定义窗口)本身使用不同的字体,即MS UI Gothic。直到我发现 QtCreator 在一个地方用 MS UI Gothic 构建我的应用程序,而在另一个地方用 Meiryo 构建我的应用程序时,这才困扰我。例如,qlabels、qlineedits、qcombobox 都使用 MS UI Gothic,但我稍后添加的带有 qtableview 的自定义完成程序使用 Meiryo。

我在 QtCreator 的 Designer 中制作了大部分 UI,并在代码中添加了完成者。如果我在 The Designer 中将所有小部件的字体更改为 Meiryo,那么应用程序当然会使用 Meiryo,因此看起来不错,但在这种情况下,我宁愿 Qt 自动为我选择任何系统的默认字体,因为 win 7 不会是唯一的平台我将使用这个程序。

更让我担心的是 QApplication::font() 返回 MS UI Gothic,在我的情况下这是错误的。当然,我可以使用 QApplication::setFont() 设置应用程序范围的字体,但这违背了在没有微管理字体的情况下拥有原生外观的整个目的。

所以我的问题是,

  1. Qt如何确定系统默认字体以及,
  2. 如果这是一个 Qt Bug,我该如何解决它?
  3. 我应该如何使用 .ui 文件并让我的 UI 在运行时使用默认系统字体?

我发现的一些澄清和事实

  1. 我希望我的应用程序对每个文本都使用系统默认字体。

  2. 这个讨论说无论你是否想要,设计师都会添加字体信息。所以 Qt 会尊重这个信息而不是系统默认字体。至少有人提到手动删除此信息应该使 Qt 在运行时选择系统默认字体。

  3. 在我的开发机器中 QApplication::font() 返回错误的默认字体。但是我稍后在代码中添加的 QTableView 怎么会使用 RIGHT 字体?它是从哪里得到这些信息的?

因此,如果我找到 QTableView 找到此信息的位置,我可以在 main 中获取它,并使用 QApplication::setFont() 将其设置为应用程序范围。然后剩下的就是手动删除所有字体信息,然后希望它会起作用。但这就像我们首先使用 Qt 的原因,不是吗?

0 投票
1 回答
180 浏览

qt4 - QHash中的长密钥

我想创建一个具有 64 个字符键和大约 100 万条记录的 QHash。可能吗 ?密钥大小有限制吗?我的记录有冲突。

0 投票
2 回答
6545 浏览

qt - 基于 QObject 的类与自身有一个排队连接

我正在研究我正在研究的一些源代码。我发现有人编码的一个特殊语句。源代码是一个带有 QML GUI 并使用 QT 4.7.x 的 GUI 应用程序。

下面的代码片段属于核心应用程序逻辑。

奇怪的是对象通过队列连接连接到自身,这本质上意味着对象可能同时“生活”在不同的线程中?

乍一看,这对我没有任何意义。谁能想到为什么这种联系是合理的或需要的?这甚至会起作用吗?

0 投票
0 回答
209 浏览

qt - qt 4.8.0 上的应用程序比 4.7.4 慢

我有一个使用 Qt 4.7.4 开发的应用程序,但我遇到了按钮(太小)点击区域的问题(报告了错误)。所以我改用 Qt 4.8.0。现在我的按钮问题已解决,但我的应用程序运行速度比使用 Qt 4.7.4 运行时要慢得多。有什么我需要做的吗?各种设置...

谢谢

0 投票
2 回答
2962 浏览

qt - 即使套接字上的数据为 0,qsocketnotifier 也会连续触发激活信号

我正在尝试将 qsocketnotifier 与 TCP 套接字一起使用,问题是 qsocketnotifier 即使在套接字上没有要读取的数据时也会持续触发“激活”信号。我已经在“阻塞”和“非阻塞”模式下在套接字上尝试过这个。行为是一样的。有没有人看到过这个?我正在粘贴下面的代码。

0 投票
1 回答
4827 浏览

qt - 如何制作一个 Qt 对话框来处理关键事件而不是其所有子小部件?

我有一个对话框继承QDialog。该对话框有许多小部件,包括Qbuttons、QLabel、QGraphicsView等。许多小部件如按钮可以在获得焦点时处理SPACE按键事件。现在我不希望任何子小部件处理它,而是让主对话框来处理。由于主对话框中有很多小部件,所以我没有为它们安装事件过滤器,而是为 qApp 安装。

代码如下:

和主对话框的事件过滤器:

不幸的是,使用这段代码后,主对话框的布局很奇怪,似乎有些小部件不记得他们的大小政策。也许一些 Qt 调整大小或重绘事件未处理?谁能告诉我如何在主对话框中捕捉关键事件,但不影响其他功能?

0 投票
1 回答
1569 浏览

qt - QApplication 不处理按键事件?

在 main() 中,我只是为 qApp 安装了一个事件过滤器。然后在 MyDialog.cpp 中:

我设置了一些断点。可以到达“return false”行,这意味着qApp已经成功地在MyDialog上安装了一个事件过滤器。但是当我按下键盘时,'return true' 行从未到达。我记得 QApplication 将调度所有事件。谁能告诉我为什么会这样?

0 投票
0 回答
143 浏览

php - rapidshare API上传恢复错误

Error: chunk size has to 500.000 or more if it is not the final chunk在调用 rapidshare API 的 uploadresume 方法时是什么意思。我发送了超过 500,000 字节的数据,但仍然出现相同的错误。

我必须设置一些标题吗?

0 投票
2 回答
1912 浏览

c++ - 如何在 QHeaderView 中实现委托

我使用 QTableview 和 QAbstractTableModel 创建了一个表。我使用 QHeaderView 添加了一些垂直标题。在一个标题单元格中,我想使用委托 ..

我正在使用委托,但它没有任何影响..

我在哪里做错了吗?

0 投票
1 回答
3391 浏览

qt - 如何使用 QGroupBox 代替 QButtonGroup

我试图弄清楚如何使用 QGroupBox 小部件代替 QButtonGroup 小部件,因为 qt 文档(下面的链接)“强烈建议不要使用它”。

https://doc.qt.io/archives/qt-4.7/q3buttongroup.html

QButtonGroup 有一个方便的方法称为QtGui.QButtonGroup.checkedButton(),我正在寻找一种方法来找到 QGroupBox 中包含的选中单选按钮。新的最佳实践是什么?