Qt / C ++:从另一个类获取Ui QLineEdit文本

卡布

我正在尝试进行一个简单的测试,以使用通过“ Qt Design”制作的UI对象,但对于Qt和C ++来说我还是很陌生。我有一个非常简单的Ui:3 LineEdits和1 PushButtonIMAGE : the UI window

我有一个应该控制Ui的客户端类。它连接,QPushButton并且应该从中获取内容QLineEdit但是QDebug,即使更改QlineEdit字段,即使按以下按钮,输入结果也始终相同“ Client connected:”“:0”

而且,如果我将on_pushButton_clickedQtDesign与made一起使用,它将显示QlineEdits的真实值

为什么QStrings总是一样?我要传递初始对象的副本吗?怎么解决呢?

这是制作影片的好方法ViewController吗?否则,什么是好的方法?

Client.cpp

#include "client.h"
#include "mainwindow.h"
#include "logwindow.h"

Client::Client()
{
    LogWindow* w1 = new LogWindow();
    MainWindow* w2 = new MainWindow();

    _stack = new QStackedWidget();
    _stack->addWidget(w1);
     connect(w1->getButton(),SIGNAL(clicked()),this,SLOT(connexion()));

    _stack->addWidget(w2);
    _stack->show();
}

//When the button is Pushed, gets the content from QlineEdits and prints them
void Client::connexion()
{
    QString ip=(LogWindow (_stack->currentWidget())).getIP();
    int port=((LogWindow (_stack->currentWidget())).getPort()).toInt();

    socket = new QTcpSocket(this);
    socket->connectToHost(ip, port);

    _stack->setCurrentIndex((_stack->currentIndex()+1)%_stack->count());
    qDebug() <<"Client connected : " << ip << ":"<<port;
}

还有一个Qt自动创建的类:

LogWindow.cpp

#include "logwindow.h"
#include "ui_logwindow.h"



LogWindow::LogWindow(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::LogWindow)
{
    ui->setupUi(this);
}

LogWindow::~LogWindow()
{
    delete ui;
}


QPushButton* LogWindow::getButton()
{
    return ui->pushButton;
}

QString LogWindow::getIP()
{
    //LineEdit named "IP_text"
    return ui->IP_text->text();
}

QString LogWindow::getPort()
{
    //LineEdit named "Port_text"
    return ui->Port_text->text();
}

LogWindow.h

namespace Ui {
class LogWindow;
}

class LogWindow : public QWidget
{
    Q_OBJECT

public:
    explicit LogWindow(QWidget *parent = 0);
    ~LogWindow();
    QPushButton* getButton();
    QString getIP();
    QString getPort();

private slots:
    void on_pushButton_clicked();

private:
    Ui::LogWindow *ui;
};
卡布

Thuga解决了它:

在Client :: connexion中,您正在创建LogWindow的新实例。如果还希望在其他Client的成员函数中访问LogWindow * w1,则将其作为Client类的成员变量。

除了_stack是没有父项的小部件外,没有什么好抱怨的,因此必须确保在不再需要它时将其销毁(例如,在析构函数中调用delete _stack;)。大多数初学者会尝试使ui变量公开以从IP_text获取数据,但是通过使LogWindow :: getIP函数使您正确地进行了操作。

如果您不想在类之外公开ui-> pushButton,则可以为LogWindow类创建一个信号,并将ui-> pushButton的单击信号连接到该信号。您可以将信号连接到信号,它不必是插槽。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Qt 更改另一个类的标签文本

来自分类Dev

QT C ++-如何在另一个类中引用窗口小部件

来自分类Dev

从QLineEdit获取纯文本

来自分类Dev

如何从另一个类获取按钮的文本

来自分类Dev

C#-从另一个类更改标签文本

来自分类Dev

如何从C#中的另一个非UI线程更新文本标签

来自分类Dev

从另一个类C ++获取数组

来自分类Dev

从另一个类C ++获取对象的属性

来自分类Dev

c#使用get set从文本框中获取字符串,而不是将其发送另一个类?

来自分类Dev

从另一个类/控制器(IOS,目标c)获取字符串时,张开耳朵的文本到语音(语音)不起作用

来自分类Dev

c#使用get set从文本框中获取字符串,而不是将其发送给另一个类?

来自分类Dev

从另一个类/控制器(IOS,目标c)获取字符串时,张开耳朵的文本到语音(语音)不起作用

来自分类Dev

如何从多个文本框中获取文本控制另一个程序。C#WM_GETTEXT

来自分类Dev

获取QLineEdit的文本边距

来自分类Dev

C#/ WPF从另一个类中创建的另一个线程更新UI

来自分类Dev

从另一个类调用Qt方法?

来自分类Dev

从另一个类调用Qt方法?

来自分类Dev

在另一个中显示 QT UI

来自分类Dev

Qt:在另一个QGraphicsItem C ++中限制QGraphicsItem的可移动区域

来自分类Dev

将变量从主窗口传递到另一个 qt C++ 表单

来自分类Dev

在 C# 中的 win 表单上动态显示在另一个类中创建的文本框

来自分类Dev

从另一个函数的“if 循环”内部调用/移动一个函数 - Qt、C++

来自分类Dev

XPath代码获取另一个类中的类文本?

来自分类Dev

Qt QLineEdit小部件使长文本左对齐

来自分类Dev

如何获取一个类对象以在C#中存储另一个类对象?

来自分类Dev

从ViewController中的文本字段获取输入并在另一个类中使用

来自分类Dev

如何从Java中的另一个类获取文本字段的数据?

来自分类Dev

jQuery:仅按类从另一个<div>获取文本

来自分类Dev

Java Swing-如何从另一个类获取TextField中的文本值

Related 相关文章

  1. 1

    Qt 更改另一个类的标签文本

  2. 2

    QT C ++-如何在另一个类中引用窗口小部件

  3. 3

    从QLineEdit获取纯文本

  4. 4

    如何从另一个类获取按钮的文本

  5. 5

    C#-从另一个类更改标签文本

  6. 6

    如何从C#中的另一个非UI线程更新文本标签

  7. 7

    从另一个类C ++获取数组

  8. 8

    从另一个类C ++获取对象的属性

  9. 9

    c#使用get set从文本框中获取字符串,而不是将其发送另一个类?

  10. 10

    从另一个类/控制器(IOS,目标c)获取字符串时,张开耳朵的文本到语音(语音)不起作用

  11. 11

    c#使用get set从文本框中获取字符串,而不是将其发送给另一个类?

  12. 12

    从另一个类/控制器(IOS,目标c)获取字符串时,张开耳朵的文本到语音(语音)不起作用

  13. 13

    如何从多个文本框中获取文本控制另一个程序。C#WM_GETTEXT

  14. 14

    获取QLineEdit的文本边距

  15. 15

    C#/ WPF从另一个类中创建的另一个线程更新UI

  16. 16

    从另一个类调用Qt方法?

  17. 17

    从另一个类调用Qt方法?

  18. 18

    在另一个中显示 QT UI

  19. 19

    Qt:在另一个QGraphicsItem C ++中限制QGraphicsItem的可移动区域

  20. 20

    将变量从主窗口传递到另一个 qt C++ 表单

  21. 21

    在 C# 中的 win 表单上动态显示在另一个类中创建的文本框

  22. 22

    从另一个函数的“if 循环”内部调用/移动一个函数 - Qt、C++

  23. 23

    XPath代码获取另一个类中的类文本?

  24. 24

    Qt QLineEdit小部件使长文本左对齐

  25. 25

    如何获取一个类对象以在C#中存储另一个类对象?

  26. 26

    从ViewController中的文本字段获取输入并在另一个类中使用

  27. 27

    如何从Java中的另一个类获取文本字段的数据?

  28. 28

    jQuery:仅按类从另一个<div>获取文本

  29. 29

    Java Swing-如何从另一个类获取TextField中的文本值

热门标签

归档