You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为QTableWidget单元格内的QDateTimeEdit设置指定日期时间

为QTableWidget单元格中的QDateTimeEdit设置日期时间的完整实现

我来帮你补全这个函数,让它能精准给指定单元格里的QDateTimeEdit控件设置目标日期时间~

先把你现有的代码片段列出来:

function setCalDateTime(iRow, month, day, year, hour, minute, ampm) {
    // 获取包含widDateTimeSelect的单元格对象
    var cellOfInterest = waitForObject("{name='tbl_SourceInventory' type='QTableWidget' visible='1'}").cellWidget(iRow,3);
    // 将单元格内容拆分为各个元素
    var cellContents = ob...
}

其实不需要拆分单元格内容,因为cellWidget(iRow,3)直接返回的就是单元格里的QDateTimeEdit控件(如果你的表格单元格确实是用这个控件的话)。如果控件是嵌套在容器里的,那我们可以通过findChild定位到目标控件。下面是完整的实现代码,包含12小时制转24小时制的逻辑:

function setCalDateTime(iRow, month, day, year, hour, minute, ampm) {
    // 1. 获取目标QTableWidget
    var inventoryTable = waitForObject("{name='tbl_SourceInventory' type='QTableWidget' visible='1'}");
    
    // 2. 获取单元格中的控件,如果是嵌套控件则用findChild定位
    var dateTimeEdit = inventoryTable.cellWidget(iRow, 3);
    // 如果控件在容器内,比如单元格里有个widget包裹,就用下面这行替换上面的
    // var dateTimeEdit = inventoryTable.cellWidget(iRow, 3).findChild("{type='QDateTimeEdit' name='widDateTimeSelect'}");
    
    // 3. 处理12小时制到24小时制的转换
    var adjustedHour = hour;
    if (ampm.toLowerCase() === 'pm') {
        adjustedHour = hour === 12 ? 12 : hour + 12;
    } else if (ampm.toLowerCase() === 'am') {
        adjustedHour = hour === 12 ? 0 : hour;
    }
    
    // 4. 构建目标日期时间对象
    var targetDate = new QDate(year, month, day);
    var targetTime = new QTime(adjustedHour, minute);
    var targetDateTime = new QDateTime(targetDate, targetTime);
    
    // 5. 给QDateTimeEdit设置日期时间
    dateTimeEdit.setDateTime(targetDateTime);
    
    // 可选:设置控件的显示格式,匹配你的输入风格(比如带AM/PM)
    // dateTimeEdit.setDisplayFormat("MM/dd/yyyy hh:mm AP");
}

关键注意点:

  • 确保waitForObject能正确定位到QTableWidget,避免因控件不可见或名称错误导致查找失败
  • 如果单元格内的QDateTimeEdit是嵌套在其他控件里的,一定要用findChild根据控件类型或名称精准定位
  • 12小时制转24小时制的逻辑必须处理,否则中午12点和凌晨12点的时间会出错
  • 可以通过setDisplayFormat设置控件的显示格式,让界面展示和输入参数的风格保持一致

内容的提问来源于stack exchange,提问作者TargetofGravity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:18:27