Qt c++如何输入值

Qt c++ how to input values

本文关键字:输入 c++ 何输入 Qt      更新时间:2023-10-16

我正在研究Visual studio(c ++),我正在使用Qt和OpenCV。
我想做的是创建一个窗口,我可以在其中输入几个稍后将在算法中使用的值。这些变量是双精度型和整型。
我已经查看了Qt文档和互联网,但我没有找到合适的方法。我也不是在寻找弹出并要求用户输入值的对话框,只是一个包含多个字段的窗口来键入我的值并更新它们。任何帮助将不胜感激,谢谢

编辑:我现在使用 QDoubleSpinBox 输入双精度值和一个按钮来更新和打印控制台中的值。我已经为我的按钮创建了一个类,以便能够在main.h中使用自定义插槽:

class MyButton : public QWidget
{
    Q_OBJECT
public:
    MyButton();
public slots:
    void updateValue(QDoubleSpinBox* input);
};  

这是主要的.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,并根据需要创建对话框。