为什么给QString赋值出错
Why there is error in assigning values to QString
我想访问从 Dialog Window
到 Main Window
的 Qstring (m_IPAdd)。但是,我坚持在 setter 函数中传递 Qstring 值。
我的错误在调试模式下显示为弹出窗口 window:
unhandled exception occurs at 0x66a77448 (Qt5Cored.dll) in __.exe:0xC0000005:
conflict happend when accessing the memory at 0xffffffffffffffff"
(我正在使用 MSVC2010 和 Qt5.0。)
对话框Window:
private:
MainWindow *mainwindow;
...
mainwindow->setIPAdd(m_IPAdd); //m_IPAdd: member variable of class DialogWindow
主要Window:
private:
QString m_ip;
...
void MainWindow::setIPAdd(const QString ip)
{
m_ip = ip ;
}
我也试过了
void MainWindow::setIPAdd(const QString ip)
{
QString ipadd = ip; //ipadd: local variable which it can get the value of Qstring (in Debug mode)
m_ip = ipadd ; //here's the program crashes, m_ip can't get any value
}
我想知道为什么局部变量ipadd
可以得到参数ip
传递的值,但不能m_ip
。我什至尝试分配
m_ip = "abc";
但是程序也失败了。
我已经阅读了qt web 中的文档,但仍然不知道哪部分对我有用。
请给我任何指导和建议。非常感谢!!
由于Dialog Window继承自QWidget,它本身就是一个widget。所以...你可以在上面定义你自己的 Q_PROPERTY 来代表你想要分享的价值,然后注册那个 属性。这样就可以从您的主窗口访问它了。
- 您没有提供足够的信息。我怀疑您的指针无效或 main window 在收到结果之前被销毁了。
- 你做错了。你有 Qt,所以使用信号和插槽在对话框和主程序之间传递值 window。正确编写的对话框应该是一个封闭的框,它不知道周围的环境或创建它的人,但你给了它一个指向 main window 的指针。
我想访问从 Dialog Window
到 Main Window
的 Qstring (m_IPAdd)。但是,我坚持在 setter 函数中传递 Qstring 值。
我的错误在调试模式下显示为弹出窗口 window:
unhandled exception occurs at 0x66a77448 (Qt5Cored.dll) in __.exe:0xC0000005:
conflict happend when accessing the memory at 0xffffffffffffffff"
(我正在使用 MSVC2010 和 Qt5.0。)
对话框Window:
private:
MainWindow *mainwindow;
...
mainwindow->setIPAdd(m_IPAdd); //m_IPAdd: member variable of class DialogWindow
主要Window:
private:
QString m_ip;
...
void MainWindow::setIPAdd(const QString ip)
{
m_ip = ip ;
}
我也试过了
void MainWindow::setIPAdd(const QString ip)
{
QString ipadd = ip; //ipadd: local variable which it can get the value of Qstring (in Debug mode)
m_ip = ipadd ; //here's the program crashes, m_ip can't get any value
}
我想知道为什么局部变量ipadd
可以得到参数ip
传递的值,但不能m_ip
。我什至尝试分配
m_ip = "abc";
但是程序也失败了。
我已经阅读了qt web 中的文档,但仍然不知道哪部分对我有用。
请给我任何指导和建议。非常感谢!!
由于Dialog Window继承自QWidget,它本身就是一个widget。所以...你可以在上面定义你自己的 Q_PROPERTY 来代表你想要分享的价值,然后注册那个 属性。这样就可以从您的主窗口访问它了。
- 您没有提供足够的信息。我怀疑您的指针无效或 main window 在收到结果之前被销毁了。
- 你做错了。你有 Qt,所以使用信号和插槽在对话框和主程序之间传递值 window。正确编写的对话框应该是一个封闭的框,它不知道周围的环境或创建它的人,但你给了它一个指向 main window 的指针。