如何设置QTableWidget的列文本格式?

时间:2014-12-07 13:27:21

标签: python qt pyside qtablewidget qtgui

我想以表格形式显示一些数据。我带了QTableWidget因为它有多列。其中一列将包含时间(hh:mm格式)

我还希望用户编辑任何表项但具有相应的格式。

我能够在QTableWidget中添加数据,但我无法设置 time 列的文本格式。

我希望这样做,以便用户只能以 hh:mm 格式编辑时间。

如果可能,请在python中写下你的答案代码。

1 个答案:

答案 0 :(得分:1)

由于您希望用户输入时间日期,我建议您按以下方式重用已存在的QDateTimeEdit类:

dateTime = QDateTimeEdit();
dateTime.setDisplayFormat("hh:mm");
dateTime.setFrame(False);
myTableWidget.setCellWidget(row, column, dateTime);

用户将能够在表格小部件中以这种方式编辑“时间数据”。此外,由于可以应用的步骤,它也将是方便的。

如果你真的坚持自己重新发明这个,你可以使用自定义验证器的QLineEdit再次使用所需的hh::mm格式。

dateTime = QLineEdit();
dateTime.setValidator(QRegExpValidator(QRegExp("^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$")));
myTableWidget.setCellWidget(row, column, dateTime);