2014-12-07 3 views
1

Я хочу показать некоторые данные в виде таблицы. Я взял QTableWidget за то, что у него несколько столбцов. Один столбец будет содержать время (чч: мм формат).Как установить текстовый формат столбца QTableWidget?

Я также хочу, чтобы пользователь редактировал любой элемент таблицы, но с соответствующим форматом.

Я смог добавить данные в QTableWidget, но я не смог установить текстовый формат время column.

Этого я хочу достичь, чтобы пользователь мог редактировать время только в hh: mm формате.

Если возможно, напишите свой код ответа в python.

+0

Вы используете [QDateTimeEdit] (http://doc-snapshot.qt-project.org/qt5-5.4/qdatetimeedit.html)? Просто установите формат отображения, если это так. – lpapp

+0

@lpapp На самом деле я добавил 'QDateTimeEdit' перед этой таблицей, где пользователь устанавливает время и добавляется в' QTableWidget', но в этой таблице я хочу разрешить пользователю редактировать данные * времени *, но в том же формате 'QDateTimeEdit' – Patrick

+0

@lpapp Мне нужно сохранить список данных в форме таблицы. Данные включают имя, время, день, температуру и т. Д. Пользователь будет настраивать их с помощью соответствующих виджетов, а затем щелкая по кнопке, которые будут добавлены в таблицу. И он может добавить mutliple datas – Patrick

ответ

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' не было' date time'. По ошибке я написал QDTE в комментарии – Patrick

+0

@Patrick: Q (D) TE не обязано иметь оба ... – lpapp

+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

Смежные вопросы