QTableWidget中实现表格的自动换行
来源:互联网 发布:编程思维 编辑:程序博客网 时间:2024/05/25 16:38
1参考资料:稍后补充。
2.实现方法1:该方法十分简单,只需要一行代码即可。
用到的QTableWidget中的函数:
信号:itemChanged(QTableWidgetItem*)//单元格内容改变后触发该信号
槽函数:resizeRowsToContents()//根据单元格内容调整行高
将信号和槽函数连接起来,就可以实现改变单元格内容后,行高跟着改变,然后它会根据单词间的空格自动换行。所以只用一行就可以。
connect(ui->tableWidget,SIGNAL(itemChanged(QTableWidgetItem*)), ui->tableWidget,SLOT(resizeRowsToContents()) );实现方法2:方法1稍微有个缺点就是如果输入一段英文字符串,它就不会自动分行,显示不全的部分会以"..."代替。方法2是给单元格写个代理,重新实现paint()函数。
部分示例代码如下:
//根据表格内容增加行高 connect(ui->tableWidget,SIGNAL(itemChanged(QTableWidgetItem*)), ui->tableWidget,SLOT(resizeRowsToContents()) ); //设置表格自动换行代码如下 //新建代理 TextEditDelegate * textEditer = new TextEditDelegate ; //给表格设置代理 ui->tableWidget->setItemDelegateForRow(0,textEditer); //给第一行第一列表格设置文字 ui->tableWidget->setRowCount(2); ui->tableWidget->setColumnCount(2); QTableWidgetItem * item0 = ui->tableWidget->item(0,0); if(item0 == NULL) { item0 = new QTableWidgetItem; ui->tableWidget->setItem(0,0,item0); } item0->setText(QString("ThisIsATestToVerifyIfTheTableCouldGoToNextRow.")); //给第2行第1列设置文字 QTableWidgetItem * item1 = ui->tableWidget->item(1,0); if(item1 == NULL) { item1 = new QTableWidgetItem; ui->tableWidget->setItem(1,0,item1); } item1->setText(QString("这是段测试语句,用来测试表格是否具有换行功能。"));实现方法1的效果如下图第2行所示,行高会增加,中文会自动换行;实现方法2的效果如下图第1行所示,行高没有增加,但是换行了。所以实现方法2需要用其他方法调整行高,目前还没实现。
另外全部源代码下载链接:http://pan.baidu.com/s/1slNl61n
编译环境Qt5.7.0(mingw版)
阅读全文
0 0
- QTableWidget中实现表格的自动换行
- XSL中实现HTML的表格自动换行
- XSL中实现HTML的表格自动换行
- 表格的自动换行
- html中表格自动换行
- 表格的自动换行问题
- 如何让table表格中td的内容自动换行
- jsp中表格,表格中的文字根据表格的大小自动换行
- jsp中表格,表格中的文字根据表格的大小自动换行
- iPhone中TableViewCell自动换行的实现
- Android 中自动换行的标签实现
- QTableWidget如何实现换行功能?
- 表格中如何控制自动换行问题
- VFP中Grid表格自动换行
- 控制网页中表格内容自动换行
- table中表格内的内容自动换行不改变表格宽度
- 如何实现表格中文字的强制换行
- CSS中如何实现表格文字的换行
- L1-048. 矩阵A乘以B
- HDU-1166敌兵布阵(线段树,树状数组)
- 通过内容提供器获取手机联系人信息
- 聚合工程模块配置需要
- hdu 6035 Colorful Tree
- QTableWidget中实现表格的自动换行
- static和final用法
- CodeForces-300A Array
- 数据类型转换之QImage到QByteArray
- 暑期集训之寻找大富翁
- BOF和EOF 初理解
- 【C语言】编译预处理及宏定义
- L2-001. 紧急救援
- js关于赋值