Qt 对象的名称必须是唯一的吗?

发布于 2024-11-28 00:43:23 字数 180 浏览 0 评论 0原文

QObject::objectName 属性对于整个应用程序必须是唯一的吗?例如,假设我在某个地方有一个名为“new”的按钮,那么我将在其他地方创建一个也称为“new”的 QShortcut。这会给Qt带来问题吗?

我知道如何正确命名对象(所谓的“新”不是一个好名字),但我只是想知道我是否需要格外小心。

Does the QObject::objectName property have to be unique for the whole application? For example, let's say I have button somewhere called "new", then somewhere else I'm going to create a QShortcut also called "new". Is it going to cause a problem to Qt?

I know about properly naming objects (something called "new" is not a good name) but I just want to know whether I need to be extra careful or not.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

涫野音 2024-12-05 00:43:23

对象名称不需要是唯一的。然而,在命名对象时,我至少可以考虑两件事:

  • QObject::findChild() - 一个可以按名称搜索 QObject 的函数。
  • 样式表。如果您按名称为小部件指定了样式表,它将应用于具有该名称的该样式的小部件下方层次结构中的对象。

Object names are not required to be unique. However, there are at least two things I can think of to consider when naming your objects:

  • QObject::findChild() - A function where you can search for QObjects by name.
  • Style sheets. If you ever specify a style sheet for a widget by name, it will apply to objects in the hierarchy underneath the widget with that style that have that name.
り繁华旳梦境 2024-12-05 00:43:23

其他需要考虑的事项:

  • 不需要名称的对象。如果您不以任何有意义的方式使用这些名称,则不必设置它们。我通常不会将它们设置为诸如 QTimer 之类的一次性对象。
  • 如果您使用设计器来制作 .ui 文件(听起来不像您,但以防万一),uic 往往会发出重复名称的警告。因此,如果您不想看到这些警告,请保持 .ui 文件中的名称唯一(设计者倾向于通过将 _1、_2 等附加到重复名称来强制执行此操作)。

Other things to consider:

  • Objects to not require names. If you're not using the names in any meaningful way, you don't have to set them. I normally don't set them for one-off objects like QTimers and such.
  • If you're using designer to make a .ui file (doesn't sound like you are, but just in case), uic tends to spit out warnings for duplicate names. So if you don't want to see those warnings, keep the names in the .ui file unique (designer tends to enforce this by appending _1, _2, etc to duplicate names).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文