调用QSpinBox的pos方法获取方位为空

itzyx 2016-09-28 05:19:15
窗体布局:
用QTableWidget画了一个二维表格,姑且说3行2列,我把QSpinBox的一个实例spinbox1放在(1,1)表格里,把QDoubleSpinBox的一个实例spinbox2放在(2,1)表格里,二者数值改变时均绑定同一个事件处理函数eventHandler。


eventHandler函数里使用self.sender().pos()获取事件来源的相对位置,并使用print打印

我尝试两种触发eventHandler机制,

1. 程序启动,绘制窗体时,分别调用两个spinbox的setValue方法给出初始值;
2. 程序启动完成,窗体完成绘制后,手动更改两个spinbox的数值;

结果:方法1,spinbox1的QPoint为空;方法2完全正常,终端打印pos如下
方法1输出:
PyQt4.QtCore.QPoint()
PyQt4.QtCore.QPoint(200, 120)

方法2输出:
PyQt4.QtCore.QPoint(200, 30)
PyQt4.QtCore.QPoint(200, 120)


程序大致如下:
窗体绘制:
......
self.spinbox1 = QSpinBox(parent = self.tableWidget)
self.tableWidget.setCellWidget(1, 1, self.spinbox1)
self.spinbox1.valueChanged[QtCore.QString].connect(self.eventHandler)
self.spinbox1.setValue(1)

self.spinbox2 = QSpinDoubleBox(parent = self.tableWidget)
self.tableWidget.setCellWidget(2, 1, self.spinbox2)
self.spinbox2.valueChanged[QtCore.QString].connect(self.eventHandler)
self.spinbox2.setValue(2.0)
.....


eventHandler函数:

def eventHandler(self,  value):
print self.sender().pos()
......



求助,请不吝赐教


...全文
270 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
itzyx 2016-09-29
  • 打赏
  • 举报
回复
自己顶下。 有时候觉得做程序员是件悲观的事情,大多时候会为了挣钱吃饭而活,没有遇到问题时,很少逛逛贴吧论坛,去帮助一些新人,结果大家都是摸黑而行,跌跌撞撞,有的走了,不干了,有的还在痛苦挣扎。 帮助别人,快乐两个人! 我是一个嵌入式驱动程序员,我为自己以上的言及却未做到的事情感到羞愧!

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧