Я работаю над функцией, в которой я надеюсь установить правильную дату/время объекта QDateTimeEdit в данной ячейке таблицы. Функция выглядит следующим образом:
function setCalDateTime(iRow, month, day, year, hour, minute, ampm) {
// We get a handle to the cell containing the widDateTimeSelect
var cellOfInterest = waitForObject("{name='tbl_SourceInventory' type='QTableWidget' visible='1'}").cellWidget(iRow,3);
// We break apart the contents of the cell into its individual elements
var cellContents = object.children(cellOfInterest);
var tblModel = findObject("{type='QTableModel' unnamed='1'}");
// We search the contents of the cell for the QDateTimeEdit widget of interest.
for (var i = 0; i < cellContents.length; ++i) {
if(typeName(cellContents[i]) == "QDateTimeEdit") {
var dtString = month + "/" + day + "/" + year + " " + hour + ":" + minute + " " + ampm;
var dateTimeObj = QDateTime.fromString(dtString, "MM/dd/yyyy hh:mm AP");
if(dateTimeObj.isNull() || !dateTimeObj.isValid()){
test.fail("setDateTimeInDateTimeControl: Failed to create a valid datetime object");
}else{
cellContents[i].setDateTime(dateTimeObj);
}
break;
}
}
}
Если это выглядит немного странно, то это потому, что мы используем набор инструментов Froglogic Squish for QT. Мы пишем тестовые примеры с использованием JavaScript, но можем получить доступ к объектам QT и, таким образом, вызывать общедоступные функции и слоты для этих объектов.
Если бы мне нужно было создать тестовый пример, в котором я должен был получить дескриптор объекта QDateTimeEdit, который не содержался в таблице, логика установки нового объекта QDateTime выше работала бы. Если бы я отлаживал приведенный выше код, функция в том виде, в котором она представлена, работает.
Если бы я просто запустил тест, эта функция не удалась cellContents[i].setDateTime(dateTimeObj);
. Если я взгляну на файл отладки, то больше всего выделяется следующее: Нарушение прав доступа — код c0000005.
Два интересующих вопроса: 1. Как лучше всего установить объект QDateTimeEdit, содержащийся в ячейке таблицы. 2. Почему это позволяет мне устанавливать правильную дату и время при выполнении кода?
Я, конечно, ценю любое руководство, которое может указать мне направление. Спасибо.