我已经在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按钮时添加按钮。现在我需要帮助来编辑新添加的按钮的名称。
1条答案
按热度按时间5cnsuln71#
您可以通过编辑器向表单添加按钮,也可以在运行时动态添加按钮,但不能两者兼得。实际上,您可以这样做,但后者不会影响前者。您不应尝试编辑生成的.cpp文件,它们是从各自的表单文件生成的。
当您使用Designer编辑器创建.ui文件时,它会创建一个.xml文件,供
uic
生成器实用程序(UI编译器)使用。在Designer窗体编辑器中,它是
objectName
属性,Designer会将objectName属性值与变量名进行匹配。该属性可以通过QObject
的setObjectName()
setter进行设置。您不能动态地将变量添加到代码中,对吗?这将需要程序中的一些“生成代码并编译”功能。