0

私はVisualStudio(c ++)に取り組んでおり、OpenCVと一緒にQtを使用しています。
私がやりたいのは、後でアルゴリズムで使用されるいくつかの値を入力できるウィンドウを作成することです。これらの変数はdouble型とint型です。
Qtドキュメントとインターネットを調べましたが、適切な方法が見つかりませんでした。また、ポップアップして値を入力するようにユーザーに求めるダイアログボックスを探しているのではなく、値を入力して更新するためのいくつかのフィールドがあるウィンドウだけを探しています。助けていただければ幸いです、ありがとう

編集:私は現在、QDoubleSpinBoxを使用してdouble値を入力し、ボタンを使用して値を更新してコンソールに出力しています。main.hでカスタムスロットを使用できるようにボタンのクラスを作成しました:

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();
}
4

4 に答える 4

2

タスクを解決するには、次のトピックを知っておく必要があります
。1.ユーザーからの入力を取得するために使用できるウィジェット(ほとんどはすでに述べられています)。 2. QtのSIGNALS&SLOTS(それらを使用して、ウィジェットに提供された値を変数に割り当てることができます)。

そのトピックはかなりボリュームがあるので、Qtのドキュメントを参照することをお勧めします(たとえば、Qtアシスタントを使用してください)。検索する情報がわかったので、タスクを解決するのが簡単になります。

于 2012-11-23T10:12:08.307 に答える
1

Qtにはいくつかの入力ウィジェットがあります。たとえば、QLineEdit、QSpinBox、QDoubleSpinBoxなどです。それらのいくつかを作成し、グリッドレイアウトに配置することができます。

于 2012-11-23T10:00:14.053 に答える
1

QLineEditはあなたが探しているものだと思います。ただし、それが目的である場合は、自分でタイプチェックする必要があります。

そして確かに、見つけるのは簡単ではありません。私の最後のQt実装は少し前で、Qtドキュメントでそれを見つけるのに少し時間がかかりました。

于 2012-11-23T10:07:46.053 に答える
0

不思議なことに、見つかりませんでした... QInputDialogを試して、それが機能するかどうかを確認してください。そうでない場合は、 QDialogをサブクラス化して、必要に応じてダイアログを作成してください。

于 2012-11-23T09:54:23.283 に答える