这是代码定位的for
循环,并为22个按钮提供大小:
for(int i=0; i<texts.size(); ++i)
{
QPushButton* button = new QPushButton(texts[i]);
connect(button, SIGNAL(clicked(bool)),
signalMapper, SLOT(map()));
button -> setFixedSize(50,30);
signalMapper -> setMapping(button, texts[i]);
gridLayout -> addWidget(button, i/5, i%5);
}
输出图像如下:
我想“手动”操纵每个按钮的size
,position
,color
和font
。我想我需要以某种方式收回signalMapper
的按钮,以便我能够对它们进行这些工作。你同意吗?
请做那些最简单,最直接的方法是什么?
PS:我只在 C ++代码中编写了应用程序,但没有使用 Designer 。
答案 0 :(得分:0)
您可以使用映射功能获取每个按钮:
df
这会将按钮的文字颜色更改为数字1到红色
答案 1 :(得分:0)
您可以创建一个QList<QPuchButton>
来动态存储您的所有按钮。在创建它们时执行此操作。它将会是这样的:
QList<QPushButton*> calcButtons;//QList for storing the buttons
for(int i=0; i<texts.size(); ++i)
{
QPushButton* button = new QPushButton(texts[i]);
calcButtons << button;
connect(button, SIGNAL(clicked(bool)),
signalMapper, SLOT(map()));
button -> setFixedSize(50,30);
signalMapper -> setMapping(button, texts[i]);
gridLayout -> addWidget(button, i/5, i%5);
}
calcButtons[0];//Use this to access them later. '0' being the first button added.