标题:求助tableWidget添加QLineEdit控件取值问题
只看楼主
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:266
专家分:15
注 册:2012-7-3
结帖率:87.5%
已结贴  问题点数:20 回复次数:3 
求助tableWidget添加QLineEdit控件取值问题
请朋友帮我看看哪里设置不对,我添加了正则,单元格数据不能响应,取不到值。
       for sc1 in range(len(stm)):
                value=int(list_text[wz][sol1+1])/100
                if value==0:
                    newItem=QTableWidgetItem('')
                else:
                    newItem=QTableWidgetItem('{:,.2f}'.format(value))
                newItem.setForeground(QColor(0,0,0))
                pDoubleValidator=QDoubleValidator()
                pDoubleValidator.setNotation(QDoubleValidator.StandardNotation)
                pDoubleValidator.setDecimals(2)
                newItem.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
                self.tableWidget.setItem(rec ,stm[sol1], QTableWidgetItem())
                self.ceil=QtWidgets.QLineEdit('{:,.2f}'.format(value))
                self.ceil.setValidator(pDoubleValidator)
                self.tableWidget.setCellWidget(rec ,stm[sol1],self.ceil)
                self.ceil.editingFinished.connect(self.eFinished)
                self.ceil.setStyleSheet("background:transparent;border-width:0;border-style:outset")
                self.ceil.setAlignment(Qt.AlignRight)
                sol1=sol1+1
搜索更多相关主题的帖子: Qt 添加 value 控件 取值 
2023-04-13 14:09
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:19
帖 子:376
专家分:1454
注 册:2023-1-24
得分:20 
抱歉,我无法回答,请提供完整代码.

会当凌绝顶,一览众山小.
2023-04-13 19:16
yll148
Rank: 2
等 级:论坛游民
威 望:3
帖 子:266
专家分:15
注 册:2012-7-3
得分:0 
回复 2楼 东海ECS
我就是想在tablewidget单元格绑定QLineEdit控件,达到控制只能录入数值,并且把所录入的值传递给单元格。
2023-04-13 19:26
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:19
帖 子:376
专家分:1454
注 册:2023-1-24
得分:0 
哦,那可能是因为您在设置 QTableWidgetItem 时没有设置其文本值。请尝试修改以下代码:

程序代码:
self.tableWidget.setItem(rec ,stm[sol1], QTableWidgetItem()) self.ceil=QtWidgets.QLineEdit('{:,.2f}'.format(value)) 
self.ceil.setValidator(pDoubleValidator) 
self.tableWidget.setCellWidget(rec ,stm[sol1],self.ceil)


为:

程序代码:
newItem=QTableWidgetItem('{:,.2f}'.format(value)) 
newItem.setFlags(Qt.ItemIsEnabled) # 设置为只读 
self.tableWidget.setItem(rec, stm[sol1], newItem) 
self.ceil=QtWidgets.QLineEdit('{:,.2f}'.format(value)) 
self.ceil.setValidator(pDoubleValidator) 
self.tableWidget.setCellWidget(rec, stm[sol1],self.ceil)


这样,QTableWidgetItem 将显示单元格的文本值,并且可以通过 self.tableWidget.item(rec, stm[sol1]).text() 获取其文本值。而 QLineEdit 将作为单元格的编辑控件,可以通过 self.tableWidget.cellWidget(rec, stm[sol1]).text() 获取其文本值。

[此贴子已经被作者于2023-4-15 10:13编辑过]


会当凌绝顶,一览众山小.
2023-04-15 10:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511902-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024957 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved