Qt C++,点击 QPushButton 时动态执行的操作

Qt C++, action on clicking QPushButton made dynamically

本文关键字:动态 执行 操作 QPushButton C++ 点击 Qt      更新时间:2023-10-16

在我的一个窗口中,我制作了一个按钮,负责创建按钮的动态数组。制作完成后,我无法使"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->close()更改this->close()

此代码仅执行一次。

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

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

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