C++ 调用Qt';什么是setui方法?

C++ 调用Qt';什么是setui方法?,c++,qt,error-handling,qwidget,null-pointer,C++,Qt,Error Handling,Qwidget,Null Pointer,我正在使用Qt设计器为我的应用程序生成许多不同的*.ui文件。然后,这些文件将按照以下方法使用 调用ui.setupUi后(this)我是否需要检查并查看是否有任何GUI元素为空?我知道setupUi会在GUI中创建所有对象的实例,但它返回void并且似乎不使用异常。Qt是否有某种保证让我知道UI元素可以安全使用,或者每次我想触摸它们时是否应该进行空检查 可以在以下文档中的示例代码中看到一个示例: 请注意,在使用指向UI元素的指针之前,不会执行空检查。为了示例的简洁性,可以省略这一点,但我在示例

我正在使用Qt设计器为我的应用程序生成许多不同的*.ui文件。然后,这些文件将按照以下方法使用

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

可以在以下文档中的示例代码中看到一个示例:

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

调用ui.setupUi后(此);我是否需要检查并查看是否有任何GUI元素为空

不,你不需要那样做

setupUi()
不接受异常。它根本没有任何
try
块。(在Creator中,当光标进入
setupUi()
调用时,只需按F2键即可跳转到该函数并检查它。)如果
new
抛出,或某个小部件构造函数抛出,您将得到该异常。好吧,
QWidget
构造函数不会抛出,但是
new
可能会抛出(例如,内存不足)

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

总之,长话短说,所有这些意味着您永远不需要检查
ui
widget指针是否为空