如何在另一个类B中使用来自类a的qlineEdit输入?
How do I use a qlineEdit input from one class A in another class B?
我是QT和c++的新手,最近我在QT5.7上写一个程序,我有三个类,让我们说a,B和C,并且都有各自的ui.file,h。文件和cpp。我在ui中声明了一个QLineEdit。文件A,类A,现在我想使用用户在类b中键入的输入
我已经尝试在类B中声明类A,并在cpp文件中,但它似乎不起作用!任何帮助都会很感激。提前感谢!!
一种方法是将QLineEdit
的textChanged()
信号连接到class B
的一个插槽。这样你就可以不断得到b类QLineEdit
的变化。
// A.cpp
A::A(B *b, QWidget *parent) :
QWidget(parent)
{
// suppose object name of your QLineEdit is 'lineEdit'
connect(ui->lineEdit, SIGNAL(textChanged(QString)),
b, SLOT(TextChanged(QString)));
}
// B.h
class B
{
Q_OBJECT
public:
B();
public slots:
void TextChanged(QString text);
private:
QString m_text;
}
// B.cpp
void B::TextChagned(QString text)
{
m_text = text;
}
或者另一种方法是在类a中编写一个方法来获取QLineEdit的文本。
// A.cpp
QString A::GetText()
{
return ui->lineEdit->text();
}
1)可以将类A传递给处理QLineEdit
的类B方法:
Class A
{
public:
QLineEdit line;
}
class B
{
public:
void getText(const A &a) { a.line.text(); }
}
或者,你可以从A继承B:
class B : public A
{
public:
void getText() { line.text(); }
}
还有第三种方法,您可以将a传递给B的构造函数,但与第一种方法类似(除了您不必将a传递给B的所有方法)
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 如何在主窗口标签的对话框中显示QLineEdit的输入
- QlineEdit:显示一个处理过的文本,而不是输入的文本,而是保留它(自定义回声模式)
- 只允许在QDoubleValidator的范围内输入QLineEdit
- 如何在另一个类B中使用来自类a的qlineEdit输入?
- QLineEdit with QValidator:不管输入的有效性如何,对编辑完成做出反应
- Qt QDialog问题:QLineEdit将不接受输入
- 在QLineEdit中输入实时更改