繁体   English   中英

Qt C ++如何输入值

[英]Qt c++ how to input values

我正在使用Visual Studio(c ++),并且正在将Qt和OpenCV一起使用。
我想要做的是创建一个窗口,在其中可以输入稍后将在算法中使用的多个值。 这些变量是double和int类型。
我已经看过Qt文档和互联网,但找不到合适的方法。 我也不是要弹出对话框来要求用户输入值,而只是一个带有多个字段的窗口来键入我的值并更新它们。 任何帮助,将不胜感激,谢谢

编辑:我现在正在使用QDoubleSpinBox输入一个双精度值和一个按钮来更新并在控制台中打印该值。 我为按钮创建了一个类,以便可以在main.h中使用自定义SLOTS:

class MyButton : public QWidget
{
    Q_OBJECT

public:
    MyButton();

public slots:
    void updateValue(QDoubleSpinBox* input);
};  

这是main.cpp:

#include "main.h"

#include <QtGui>

#include <iostream>

using namespace std;

double value;

MyButton::MyButton() : QWidget()
{
    QPushButton *update = new QPushButton("update",this);
    connect(update, SIGNAL(clicked()), this, SLOT(updateValue(QDoubleSpinBox)));
}

void MyButton::updateValue(QDoubleSpinBox *input)
{
    input->update();
    value = input->value(); 
    cout<<value;
}  

现在,我不确定要在“ main”函数中编写什么内容以使用它来创建按钮。 到目前为止,这是我的“主要”功能:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWidget window;

    QDoubleSpinBox *input = new QDoubleSpinBox();
    input->setValue(5.00);

    QVBoxLayout *vbox1 = new QVBoxLayout;
    vbox1->addWidget(input);

    window.setLayout(vbox1);
    window.resize(800,600);
    window.show();
    window.setWindowTitle(QApplication::translate("toplevel", "Top-level widget"));
    return app.exec();
}

要解决您的任务,您应该了解以下主题:
1.哪些小部件可用于从用户那里获取输入 (其中大多数已说明);
2. Qt中的信号和插槽 (使用它们,您可以将提供给窗口小部件的值分配给变量)。

由于这些主题相当庞大,我建议您参考Qt文档 (例如,使用Qt助手 ),因为您现在知道要搜索哪些信息,这将使您更轻松地解决任务

Qt中有几个输入小部件。 例如QLineEdit,QSpinBox和QDoubleSpinBox。 您可以创建其中几个并将它们放置在网格布局中。

我想QLineEdit是您想要的。 但是,如果您要这样做,则需要输入自己检查。

确实,这并不容易找到。 我的上一个Qt实现是前一段时间,我花了一些时间在Qt文档中找到它。

很好奇,您找不到...尝试使用QInputDialog并查看它是否对您有用 ,否则请继承 QDialog并根据需要创建对话框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM