Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 覆盖Qt安装程序框架下一步按钮单击操作_Javascript_Qt_Installation - Fatal编程技术网

Javascript 覆盖Qt安装程序框架下一步按钮单击操作

Javascript 覆盖Qt安装程序框架下一步按钮单击操作,javascript,qt,installation,Javascript,Qt,Installation,我正在尝试Qt框架安装程序(动态页面示例)。我添加了 QLineEdit可在预定义页面“ReadyForInstallation”中获取用户输入,该页面如下所示: 我现在要做的是禁用next按钮,直到用户输入正确的键。但我找不到任何与此问题相关的文档。在构造函数或UI文件中,默认情况下,保持“下一步”按钮处于禁用状态。 QLineEdit发出的信号是textChanged(const QString&)。您可以将插槽连接到此信号,并在插槽中检查输入的文本是否与有效密钥相同。下面是模拟代码,它将

我正在尝试Qt框架安装程序(动态页面示例)。我添加了
QLineEdit可在预定义页面“ReadyForInstallation”中获取用户输入,该页面如下所示:


我现在要做的是禁用next按钮,直到用户输入正确的键。但我找不到任何与此问题相关的文档。

在构造函数或UI文件中,默认情况下,保持“下一步”按钮处于禁用状态。 QLineEdit发出的信号是
textChanged(const QString&)
。您可以将插槽连接到此信号,并在插槽中检查输入的文本是否与有效密钥相同。下面是模拟代码,它将帮助您

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QLineEdit>
#include <QString>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

public slots:
    // Slot where you can for the validity of the key
    void onLineEditFilled(const QString&);


private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

谢谢你的回复。我在问题中没有提到这一点,Qt框架安装程序示例是用Javascript()编写的。请你修改一下你的问题,把这个也提出来好吗。我将很快检查解决方案。
#include "widget.h"
#include "./ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    // by default the next pushbutton is disabled.
    ui->nextPushButton->setEnabled(false);

    connect(ui->lineEdit, SIGNAL(textChanged(const QString&)), this, SLOT(onLineEditFilled(const QString&)));
    connect(ui->lineEdit_2, SIGNAL(textChanged(const QString&)), this, SLOT(onLineEditFilled(const QString&)));
    connect(ui->lineEdit_3, SIGNAL(textChanged(const QString&)), this, SLOT(onLineEditFilled(const QString&)));
    connect(ui->lineEdit_4, SIGNAL(textChanged(const QString&)), this, SLOT(onLineEditFilled(const QString&)));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::onLineEditFilled(const QString&)
{
    if(ui->lineEdit->text() == "0000" &&
            ui->lineEdit_2->text() == "0000" &&
            ui->lineEdit_3->text() == "0000" &&
            ui->lineEdit_4->text() == "0000")
    {
        ui->nextPushButton->setEnabled(true);
    }
    else
    {
        ui->nextPushButton->setEnabled(false);
    }
}