Qt c++如何输入值
Qt c++ how to input values
我正在研究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,并根据需要创建对话框。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 用户定义函数中的指针和输入
- 如何在C++中检查2D数组中负值的输入验证
- 如何只允许用户输入正整数
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 输入中的字符串数未知(以字母表示)
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 在一个模板函数中,若输入的类型是enum类,我该如何使用std::underlying_type