Имеется класс диалогового окна. Необходимо, чтобы при активации элемента списка активировалась кнопка "Принять" (я создал необходимый слот). Но такого почему-то не происходит. В чём проблема?
class ChooseTableDialog: public QDialog
{
Q_OBJECT
private:
QListWidget *list;
QPushButton *admitButton;
QPushButton *cancelButton;
public:
ChooseTableDialog(QWidget* parent);
virtual ~ChooseTableDialog() {};
private slots:
void EnableAdmitButton(QListWidgetItem*);
};
void ChooseTableDialog::EnableAdmitButton(QListWidgetItem* listWidgetItem)
{
admitButton->setEnabled(true);
}
ChooseTableDialog::ChooseTableDialog(QWidget *parent = 0) : QDialog(parent)
{
list = new QListWidget(this);
admitButton = new QPushButton(QObject::tr("Принять"),this);
cancelButton = new QPushButton(QObject::tr("Отмена"),this);
admitButton->setEnabled(false);
QObject::connect(admitButton, SIGNAL(clicked()), this, SLOT(close()));
QObject::connect(cancelButton, SIGNAL(clicked()), this, SLOT(close()));
QObject::connect(list, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(EnableAdmitButton(QListWidgetItem*)));
QString *tablesString = new QString[6];
tablesString[0]="user";
tablesString[1]="group_";
tablesString[2]="forum";
tablesString[3]="section";
tablesString[4]="topic";
tablesString[5]="comment";
QListWidgetItem **listWidgetItems = new QListWidgetItem*[6];
for (int i = 0; i < 6; i++)
{
listWidgetItems[i]=new QListWidgetItem(tablesString[i],list);
}
for (int i = 0; i < 6; i++)
{
list->addItem(listWidgetItems[i]);
}
QVBoxLayout *mainLayout = new QVBoxLayout;
QHBoxLayout *bottomLayout = new QHBoxLayout;
bottomLayout->addWidget(admitButton);
bottomLayout->addWidget(cancelButton);
mainLayout->addWidget(list);
mainLayout->addLayout(bottomLayout);
this->setLayout(mainLayout);
}