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

w46czmvw  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(261)

我已经在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按钮时添加按钮。现在我需要帮助来编辑新添加的按钮的名称。

5cnsuln7

5cnsuln71#

您可以通过编辑器向表单添加按钮,也可以在运行时动态添加按钮,但不能两者兼得。实际上,您可以这样做,但后者不会影响前者。您不应尝试编辑生成的.cpp文件,它们是从各自的表单文件生成的。
当您使用Designer编辑器创建.ui文件时,它会创建一个.xml文件,供uic生成器实用程序(UI编译器)使用。
在Designer窗体编辑器中,它是objectName属性,Designer会将objectName属性值与变量名进行匹配。该属性可以通过QObjectsetObjectName() setter进行设置。您不能动态地将变量添加到代码中,对吗?这将需要程序中的一些“生成代码并编译”功能。

相关问题