gpt4 book ai didi

c++ - 我应该在调用 Qt 的 setui 方法后检查空指针吗?

转载 作者:搜寻专家 更新时间:2023-10-31 02:02:25 25 4
gpt4 key购买 nike

我正在使用 Qt Designer 为我的应用程序生成许多不同的 *.ui 文件。然后在 single inheritance 之后使用这些文件方法。

在调用 ui.setupUi(this); 之后,我是否需要检查并查看是否有任何 GUI 元素为空?我知道 setupUi 会在 GUI 中创建所有对象的实例,但它返回 void 并且似乎没有使用异常。 Qt 是否缺少某种保证,让我知道 UI 元素可以安全使用,或者我是否应该在每次想要触摸它们时都进行 null 检查?

可以在此处文档的示例代码中看到一个示例:https://doc.qt.io/qt-5/qtdesigner-calculatorform-example.html

请注意,在使用指向 UI 元素的指针之前不会执行空值检查。为了示例的简洁起见,可以省略它,但我从未在示例代码中看到它。如果我可以安全地假设 UI 元素存在,我可以从我的代码中删除很多 if 语句...

最佳答案

After calling ui.setupUi(this); do I need to check and see if any GUI elements are null?

没有。你不需要那样做。

setupUi() 不会吞下异常。它根本没有任何 try block 。 (在 Creator 中,当光标位于 setupUi() 调用上时,您只需按 F2 即可跳转到该函数并检查它。)如果 new 抛出,或者出现以下情况之一小部件构造函数抛出,您将得到该异常。据我所知,QWidget 构造函数不会抛出,但 new 可能会抛出(例如,内存不足。)

您甚至不需要自己在调用 setupUi() 的构造函数中检查异常。如果 setupUi() 抛出异常,那么您自己的构造函数将自动重新抛出异常。

总之,长话短说,所有这一切意味着您永远不需要检查任何 ui 小部件指针是否为空。

关于c++ - 我应该在调用 Qt 的 setui 方法后检查空指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57300230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com