我想在循环中在Qt中创建许多按钮。
在头文件中:
QVector<QPushButton> *btns;
在cpp文件中:
btns = new QVector<QPushButton>();
for(int i = 0; i <= 10; i++) {
btns->append(new QPushButton(QString::number(i),this));
}
我收到错误:
无法从&#39; QPushButton *&#39;转换参数1到了#const QPushButton &安培;&#39;
它可能并不难解决,但我对指针不太好。你能救我吗?
答案 0 :(得分:4)
<td colspan="12">
{$product_tab}
</td>
源中的
QVector<QPushButton*> btns;
答案 1 :(得分:4)
您尝试按值存储按钮。这在Qt容器中是不可能的,因为它们需要可复制的值,并且不能从gcc test.c -lpcap
派生的Qt类是可复制的。 QObject
无法复制,也无法按值存储在Qt容器中。
您需要做的是:
按指针存储小部件:
QPushButton
或者,按值将小部件存储在不需要复制它们的容器中:
class MyClass : ... {
QList<QPushButton *> m_buttons; // performs the same as QVector, has <<
...
};
for(int i = 0; i <= 10; i++) {
m_buttons << new QPushButton(QString::number(i),this));
// you'll be likely adding the buttons to a layout:
layout().addWidget(m_buttons.back());
}