• 6597阅读
  • 9回复

qt下char变量之间的赋值! [复制链接]

上一主题 下一主题
离线pear_2268
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-07
在CMainWindow
void CMainWindow::slotSetting()
{
    cout<<"the parity is "<<m_cParity<<endl;        //当第二次执行这个函数时,输出的为空,应该为对话框操作后的值,即下面的cout
    CSettingDlg dlg(this);
    int res = dlg.exec();    
    if(res == QDialog::Accepted)
       {
                    strTemp = dlg.pParityCB->currentText();
           m_cParity = strTemp.at(0).latin1();
                     cout<<m_cParity<<".........."<<endl;          ///这个值输出是对的
       }
}
m_cParity是CMainWindow的一个char变量,在构造函数中初始化为'n',第二次调用该函数后第一个cout输出为空,为什么啊?
离线pear_2268

只看该作者 1楼 发表于: 2010-01-07
为什么总遇到这些莫名莫名其妙的问题啊,大家有没有经验啊?给分析一下啊
离线xtfllbl

只看该作者 2楼 发表于: 2010-01-07
没有经验,但是分析一下
1。输出换成qDebug试试
2。字符串我已经好久没用char了,你换成qstring试试

一看就是微软东西用多了,什么都带C。。。
上海欢迎您
离线pear_2268

只看该作者 3楼 发表于: 2010-01-07
终于有点人气了!刚转到qt下,以前都是MFC,里面还有一写char变量都可以,唯独这个有错误,我都晕了
离线dbzhang800

只看该作者 4楼 发表于: 2010-01-07
引用第3楼pear_2268于2010-01-07 17:08发表的  :
终于有点人气了!刚转到qt下,以前都是MFC,里面还有一写char变量都可以,唯独这个有错误,我都晕了


一般来说,这种问题你debug一下程序应该比较容易找出来。
比如,重点看看哪些地方对该变量执行了赋值操作等。
离线pear_2268

只看该作者 5楼 发表于: 2010-01-07
qt下怎么进行调试啊?我直接在终端下输入qmake -project
                                                                           qmake
                                                                           make
离线xtfllbl

只看该作者 6楼 发表于: 2010-01-07
引用第5楼pear_2268于2010-01-07 17:31发表的  :
qt下怎么进行调试啊?我直接在终端下输入qmake -project
                                                                           qmake
                                                                           make

gdb阿
上海欢迎您
离线pear_2268

只看该作者 7楼 发表于: 2010-01-07
make 后面需要带什么参数吗?用g++调式的时候 -g,make的时候呢?
离线xtfllbl

只看该作者 8楼 发表于: 2010-01-08
引用第7楼pear_2268于2010-01-07 17:35发表的  :
make 后面需要带什么参数吗?用g++调式的时候 -g,make的时候呢?

没有IDE么?没的话就qDebug吧,这种东西打出来一看就知道哪里错了。
上海欢迎您
离线yangfanxing
只看该作者 9楼 发表于: 2010-01-08
看来qDebug()也挺好的~~~我还一直崇拜IDE呢,,,呵呵。。。
PHPWind好恶心。。。不想看这种界面。。。
快速回复
限100 字节
 
上一个 下一个