2014-12-07 115 views
1

我想以表格形式顯示一些數據。我拿了QTableWidget因爲它有多列。其中一列將包含時間(hh:mm格式)如何設置QTableWidget的列文本格式?

我也希望用戶編輯表格的任何項目,但具有相應的格式。

我能夠在QTableWidget中添加數據,但我無法設置文本格式時間列。

這個我想實現讓用戶只能編輯時間hh:mm格式。

如果可能的話,請在Python中編寫答案代碼。

+0

您是否在使用[QDateTimeEdit](http://doc-snapshot.qt-project.org/qt5-5.4/qdatetimeedit.html)?如果是這樣,請設置顯示格式。 – lpapp 2014-12-07 13:56:15

+0

@lpapp其實我已經在這個表之前添加了'QDateTimeEdit',用戶在這個表中設置時間,並且它被添加到'QTableWidget'中,但是在這個表中我想讓用戶編輯這個*時間數據*但是具有相同格式的'QDateTimeEdit' – Patrick 2014-12-07 14:07:55

+0

@lpapp我必須以表格的形式維護一個數據列表。數據包括名稱,時間,日期,溫度等。用戶將使用相應的小部件對其進行配置,然後單擊將添加到表中的按鈕。他可以添加多個數據 – Patrick 2014-12-07 14:15:49

回答

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); 
+0

只是爲了通知你,我希望在'QTW'中的時間不是'日期時間'。我錯誤地寫了QDTE在評論 – Patrick 2014-12-07 14:32:06

+0

@帕特里克:Q(D)TE沒有義務有兩個... – lpapp 2014-12-07 14:42:15

+0

第一代碼工作正常,但第二個給出錯誤:'dateTime.setValidator(QRegExpValidator(「^([0-9 ] | 0 [0-9] | 1 [0-9] | 2 [0-3]):[0-5] [0-9] $「)) TypeError:'PySide.QtGui.QRegExpValidator'錯誤的參數類型: PySide.QtGui.QRegExpValidator(str)' – Patrick 2014-12-07 14:48:58