///////////////////////////////////////////////////////////
//常量定义
#define STR_TOTALLINE_TYPE_USER QString::fromUtf8("内线")
#define STR_TOTALLINE_TYPE_TRUNK QString::fromUtf8("外线")
#define STR_TOTALLINE_TYPE_EMPTY QString::fromUtf8("悬空")
#define STR_TOTALLINE_TYPE_RECORD QString::fromUtf8("录音")
///////////////////////////////////////////////////////////
//signal 定义
signals:
void outTableItem(int nRow, int nCol, QString label);
////////////////////////////////////////////////////////////
//signal 使用
long lType;
QString strText;
/*usTotalLine > 8*/
for (int i = 0; i < usTotalLine; i++) {
lType = CheckChTypeNew(i);
switch (lType) {
case CHTYPE_USER:
strText = STR_TOTALLINE_TYPE_USER;
break;
case CHTYPE_TRUNK:
strText = STR_TOTALLINE_TYPE_TRUNK;
break;
case CHTYPE_EMPTY:
strText = STR_TOTALLINE_TYPE_EMPTY;
break;
case CHTYPE_RECORD:
strText = STR_TOTALLINE_TYPE_RECORD;
break;
}
/*我注释一种的任何一句emit 程序做一次循环就出现内存的非法访问*/
/*如果不注释 程序可以做3次循环*/
/*debug 发现是QString一起的错误*/
emit
outTableItem(i, INT_TOTALLINE_ITEM_NUM, QString::number(i));
emit
outTableItem(i, INT_TOTALLINE_ITEM_TYPE, strText);
msleep(500);
}
/////////////////////////////////////////////////////////////////
//slot 定义
public slots:
void startServer(bool checked);
/////////////////////////////////////////////////////////////////
//connect
connect(&classVoiceSystem, SIGNAL(outTableItem(int, int, QString)), this,
SLOT(setTableItem(int, int, QString)));
/////////////////////////////////////////////////////////////////
//slot 我屏蔽主体语句错误依然 可以排除slot中的问题
void CallCenterServer::setTableItem(int nRow, int nCol, QString label) {
QTableWidgetItem *item = new QTableWidgetItem(label);
ui.tableWidget->setItem(nRow, nCol, item);
}
56 个解决方案
#1
是否没有指定QTableWidget的行、列数?
#2
恩 指定了
我又发现 emit 时 变量 i, 和 lType 会被改变
声明const 也不行
我又发现 emit 时 变量 i, 和 lType 会被改变
声明const 也不行
#3
int i的作用域是for循环,
你在for的外面使用了i
你在for的外面使用了i
#4
请问怎么解决
去除引用?
去除引用?
#5
改成这样:
int i ;
for (i = 0; i < usTotalLine; i++) {
int i ;
for (i = 0; i < usTotalLine; i++) {
#6
谢谢 还是不行
emit后i值就被改变了
#7
顶起.....
我该了代码
新错误:
循环发射信号 i的值被改变
为什么啊
谢谢
我该了代码
新错误:
循环发射信号 i的值被改变
为什么啊
for (int i = 0; i < (int) ulTotalLine; i++) {
switch (CheckChTypeNew(i)) {
case CHTYPE_USER:
strType = new QString(STR_LINE_TYPE_USER);
break;
case CHTYPE_TRUNK:
strType = new QString(STR_LINE_TYPE_TRUNK);
break;
case CHTYPE_EMPTY:
strType = new QString(STR_LINE_TYPE_EMPTY);
break;
case CHTYPE_RECORD:
strType = new QString(STR_LINE_TYPE_RECORD);
break;
}
emit outTableItem(i, INT_TOTALLINE_ITEM_TYPE, strType);
emit outLog(QString::number(i));
msleep(500);
}
}
谢谢
#8
不错,谢谢楼主,真的不错
#9
你确定你的行和列数目是正确的吗??
#10
sssssssssss
#11
不错,虽然没看懂。。
#12
不错,我收藏了.
#13
不错,学习了
#14
楼主不错呢,虽然提不出什么建议,但是顶起来,up
#15
按时接分
#16
我只是来看看
#17
signals:
void outTableItem(int nRow, int nCol, const QString& label);
void outTableItem(int nRow, int nCol, const QString& label);
#18
路过。。。。。
#19
学习了
#20
收藏收藏~~~~
#21
学习学习
#22
挺好的,学习一下
#23
内存越界了
#24
神奇
。。。。。。。。。。。。。
。。。。。。。。。。。。。
#25
来看看!!!
#26
这个不懂,等待高手解决了
#27
太长。心情不好,读不下去了。
#28
hao
#29
听说评论有分
#30
学习中分享中
#31
fdsui hfasoihf alskenf lk;sajdf
#32
int i的作用域是for循环,
你在for的外面使用了i
你在for的外面使用了i
#33
bszahaha
#34
来看看。学习了......
#35
学习了,,,
#36
虽然看的不是很了解,学习学习!
#37
学习 学习
#38
谢谢大家!
我搞错了 不是信号的问题
我调用库函数CheckChTypeNew()引起的错误
一场误会......
我搞错了 不是信号的问题
我调用库函数CheckChTypeNew()引起的错误
一场误会......
#39
路过...........
#40
学习中
#41
-----------------------------
#42
不错,我懂了
#43
看看。。
#44
学习了
#45
虽然看的不是很了解,学习学习!
#46
路过,路过,学习
#47
学习了,,,,
#48
ereup
#49
dddddddddddddddd
#1
是否没有指定QTableWidget的行、列数?
#2
恩 指定了
我又发现 emit 时 变量 i, 和 lType 会被改变
声明const 也不行
我又发现 emit 时 变量 i, 和 lType 会被改变
声明const 也不行
#3
int i的作用域是for循环,
你在for的外面使用了i
你在for的外面使用了i
#4
请问怎么解决
去除引用?
去除引用?
#5
改成这样:
int i ;
for (i = 0; i < usTotalLine; i++) {
int i ;
for (i = 0; i < usTotalLine; i++) {
#6
谢谢 还是不行
emit后i值就被改变了
#7
顶起.....
我该了代码
新错误:
循环发射信号 i的值被改变
为什么啊
谢谢
我该了代码
新错误:
循环发射信号 i的值被改变
为什么啊
for (int i = 0; i < (int) ulTotalLine; i++) {
switch (CheckChTypeNew(i)) {
case CHTYPE_USER:
strType = new QString(STR_LINE_TYPE_USER);
break;
case CHTYPE_TRUNK:
strType = new QString(STR_LINE_TYPE_TRUNK);
break;
case CHTYPE_EMPTY:
strType = new QString(STR_LINE_TYPE_EMPTY);
break;
case CHTYPE_RECORD:
strType = new QString(STR_LINE_TYPE_RECORD);
break;
}
emit outTableItem(i, INT_TOTALLINE_ITEM_TYPE, strType);
emit outLog(QString::number(i));
msleep(500);
}
}
谢谢
#8
不错,谢谢楼主,真的不错
#9
你确定你的行和列数目是正确的吗??
#10
sssssssssss
#11
不错,虽然没看懂。。
#12
不错,我收藏了.
#13
不错,学习了
#14
楼主不错呢,虽然提不出什么建议,但是顶起来,up
#15
按时接分
#16
我只是来看看
#17
signals:
void outTableItem(int nRow, int nCol, const QString& label);
void outTableItem(int nRow, int nCol, const QString& label);
#18
路过。。。。。
#19
学习了
#20
收藏收藏~~~~
#21
学习学习
#22
挺好的,学习一下
#23
内存越界了
#24
神奇
。。。。。。。。。。。。。
。。。。。。。。。。。。。
#25
来看看!!!
#26
这个不懂,等待高手解决了
#27
太长。心情不好,读不下去了。
#28
hao
#29
听说评论有分
#30
学习中分享中
#31
fdsui hfasoihf alskenf lk;sajdf
#32
int i的作用域是for循环,
你在for的外面使用了i
你在for的外面使用了i
#33
bszahaha
#34
来看看。学习了......
#35
学习了,,,
#36
虽然看的不是很了解,学习学习!
#37
学习 学习
#38
谢谢大家!
我搞错了 不是信号的问题
我调用库函数CheckChTypeNew()引起的错误
一场误会......
我搞错了 不是信号的问题
我调用库函数CheckChTypeNew()引起的错误
一场误会......
#39
路过...........
#40
学习中
#41
-----------------------------
#42
不错,我懂了
#43
看看。。
#44
学习了
#45
虽然看的不是很了解,学习学习!
#46
路过,路过,学习
#47
学习了,,,,
#48
ereup
#49
dddddddddddddddd