c++ - 单击 QPushButton 时,将数据从 QLineEdit 转换为 QString。

标签 c++ qt4

这个网站真的很棒我要感谢任何回答我帖子的人。您可能会发现我的帖子是转贴的转贴,因为它又是关于从 QLineEdit 检索数据的。整整 2 天,我一直在尝试通过 hudge stackoverflow 数据库来解决这个问题,但我找不到答案。

基本上,我想从 QLineEdit 中检索一个 IP 地址,并从 QLineEdit 中检索一个端口号,我这样做了:

myclass::myclass(QWidget *parent = 0)
{
     _mainuilayout = new QGridLayout();
     ipAddress = new QLineEdit();
     portnumber = new QLineEdit();
     QFormLayout *connect2adress = new QFormLayout();
     connect2adress->addRow("Ip Adress : ", ipAddress);
     connect2adress->addRow("Port number : ", portnumber);
     _launch = new QPushButton("Launch server");
     _mainuilayout->addWidget(_launch);
     _mainuilayout->addLayout(connect2adress);

     QObject::connect(_launch, SIGNAL(clicked()), this, SLOT(setipAddress()));
     QObject::connect(_launch, SIGNAL(clicked()), this, SLOT(setportnumber()));

     server->connectTo(thisaddress,thisport);

     QObject::connect(_launch, SIGNAL(clicked()), server, SLOT(launchserver()));
}

在这里,您获得了将 ip 地址存储在 QString 中的代码,这个地址是在 header 和这个端口中定义的 QString

void myclass::setipAddress()
{
     thisaddress = ipAddress->text();
}

void myclass::setportnumber()
{
    thisport = portnumber->text().toShort();
}

我想要的是当我点击启动按钮时,它将来自 QLineEdit 的数据存储在这个地址和这个端口中,这样我就可以启动服务器,这里是 connectTo 的代码

void server::connectTo(QString ipAdress,quint16 port)
{
    if(!ipAdress.isEmpty() && port != 0 )
    {
         ipAddress = ipAdress;
         portnumber = port;
    }
}

当我将 QLineEdit 转换为 QString 时,问题真的来了,因为当我直接分配 thisAddress 和 thisportnumber 时,它正在工作

  thisAddress = "127.0.0.1"
  thisportnumber = 5855

我得到了这个错误:

  Unsupported socket Operation

那么伙计们,你们有什么答案可以帮助我吗? 我试图按照该堆栈帖子中给出的解决方案 Store QLineEdit's data into a QString upon a QPushButton click 但它仍然不起作用如果我发现我让你知道的东西,我仍在努力! 谢谢回复!

最佳答案

自从我使用 Qt 以来已经很久了,但我看到没有人回答你的问题,所以我会加两分钱。

当您将一个事件连接到多个槽时,我认为您不能期待特定的调用顺序。您正在 _launch 按钮上连接 clicked() 事件以填充您的 IP 地址和端口号,并调用 launchserver()。但是您需要先调用其他两个插槽。

如果您可以将它连接到单个插槽会更好,它将更新适当的成员值,然后然后进行连接。

关于c++ - 单击 QPushButton 时,将数据从 QLineEdit 转换为 QString。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15606269/

相关文章:

c++ - 如何从 QGraphicsItem 中的上下文菜单运行函数

c++ - 如何知道 QDockWidget 是通过按钮还是通过拖动取消停靠?

linux - 如何使用 Qt 4 创建 OpenGL 3 上下文?

c++ - 为什么 C 字 rune 字是 int 而不是 char?

c++ - 消息处理程序未调用窗口过程

c++ - Virtual 关键字使派生对象中的方法不可访问

工具按钮下的Qt设置文本

c++ - 如何在 Qt LineEdit 上使用 .hide,仍然接受输入?

c++ - 每当表达式未定义时,在 C++ 中启用函数模板

C++:在 main() 之外播种随机数生成器