Qt creator C++,如何编辑在 qframe 中添加的动态添加按钮的名称

问题描述 投票:0回答:1

我在 qframe 中动态添加了几个按钮,但我想编辑按钮的名称。

QPushButton* newButton = new QPushButton("new button " + QString::number(ui->frame->findChildren<QPushButton*>().count()));
newButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
newButton->setFixedSize(100, 50);
newButton->setParent(ui->frame_6);
int buttonWidth = newButton->width();
int buttonHeight = newButton->height();
int numRows = ui->frame_6->width() / (buttonWidth + 10);
int row = ui->frame_6->findChildren<QPushButton*>().count() / numRows;
int col = ui->frame_6->findChildren<QPushButton*>().count() % numRows;
QPoint buttonPos = QPoint(col * (buttonWidth + 10), row * (buttonHeight + 10));
newButton->move(buttonPos);
newButton->show();

我每次按下 addnew 按钮时都使用此代码片段添加按钮。现在我需要帮助来编辑新添加的按钮的名称。

c++ qt-creator qpushbutton qframe
1个回答
0
投票

您要么通过编辑器将按钮添加到表单,要么在运行时动态添加它们,不能同时拥有。实际上可以,但后者不会影响前者。您不应该尝试编辑生成的 .cpp 文件,它们是从各自的表单文件生成的。

当您使用 Designer 编辑器创建 .ui 文件时,它会创建一个由

uic
生成器实用程序(UI 编译器)使用的 .xml 文件。

在 Designer 表单编辑器中,它是

objectName
属性,Designer 会将 objectName 属性值与变量名称匹配。该属性可以通过
QObject
s
setObjectName()
setter 进行设置。您不能动态地向代码中添加变量,对吗?这将需要程序中的一些“生成代码和编译”功能。

© www.soinside.com 2019 - 2024. All rights reserved.