Qt C ++,动态点击QPushButton的动作

时间:2015-01-18 19:33:57

标签: c++ arrays qt dynamic qpushbutton

在我的一个窗口中,我制作了一个按钮,负责创建动态的按钮阵列。制作完成后,我不能让'anul'按钮关闭窗口 这是代码

QWidget *centralWidget = new QWidget;
        int licznik=1;
        QString licz;
        QString kolumny = ui->lineEdit->text();
        QString wiersze = ui->lineEdit_2->text();
        QPushButton *button[wiersze.toInt()][kolumny.toInt()];

        QGridLayout *controlsLayout = new QGridLayout;
        for(int i=0;i<wiersze.toInt();i++)
        {
            for(int j=0;j<kolumny.toInt();j++)
            {
                    licz = QString::number(licznik);
                    licznik++;
                    button[i][j] = new QPushButton(licz);
                    button[i][j]->setCheckable(1);
                    controlsLayout->addWidget(button[i][j], i, j);
            }
        }

        QPushButton *okej = new QPushButton("Zatwierdź");
        QPushButton *anul = new QPushButton("Anuluj");
        if(anul->isDown() == true)
            this->close();
        controlsLayout->addWidget(okej, wiersze.toInt(), 0);
        controlsLayout->addWidget(anul, wiersze.toInt(), 1);

        controlsLayout->setHorizontalSpacing(0);
        controlsLayout->setVerticalSpacing(0);
        centralWidget->setLayout(controlsLayout);

        setCentralWidget(centralWidget);

我还尝试使用centralWidget-&gt; close()

更改此 - &gt; close()

1 个答案:

答案 0 :(得分:0)

此代码仅执行一次。

 if(anul->isDown() == true)
            this->close();

您想要的是将按钮的clicked()信号连接到功能(插槽)

connect(anul, SIGNAL(clicked()), this,SLOT(close()))