【问题标题】:Adding widget to layout specified in QString将小部件添加到 QString 中指定的布局
【发布时间】:2012-05-24 17:26:53
【问题描述】:

我在 Qt 中开始了我的第一步编程,但找不到答案。 我有一些小部件,假设它被命名为“标签”。 我想在它的布局中添加新的小部件。 我可以通过写作来做到这一点:

QLabel *label = new QLabel(tab);

我想做同样的事情,但我不想说“选项卡”,而是想使用存储在 QString 变量中的小部件名称。像这样的东西(但它不起作用,无法将 QString 转换为 QWidget):

QString name = "tab";
QLabel *label = new label(zakladka);

有可能吗?

【问题讨论】:

  • 这是不可能的。变量名不能与字符串互换。也许您可以解释一下您要做什么,我们可以帮助您找到更好的解决方案。
  • 我的标签很少。我想从文本文件中读取选项卡名称并在该特定选项卡上放置一个对象。

标签: qt


【解决方案1】:

QObjects 有一个属性objectName。因此,如果您命名您的对象并让它们成为 QObject 层次结构的一部分(即您知道它们是父对象的子对象),您可以使用findChild

QLabel* label = new QLabel(parentWidget->findChild(name));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2012-06-03
    • 2012-10-23
    • 1970-01-01
    • 2016-11-26
    • 2013-05-01
    • 2014-10-17
    相关资源
    最近更新 更多