Помните об этом при использовании ответа от Jon Skeet с таким кодом:
// 12 days, 23 hours, 24 minutes, 2 seconds.
TimeSpan span = new TimeSpan(12, 23, 24, 2);
// 27 hours, 24 minutes, 2 seconds
TimeSpan span2 = new TimeSpan(27,24,2);
string format = span.ToString("h'h 'm'm 's's'");
string format2 = span2.ToString("h'h 'm'm 's's'");
Console.WriteLine(format);
Console.WriteLine(format2);
Console.ReadLine();
Вы получаете такие результаты:
23h 24m 2s
3h 24m 2s
Формат часов может максимум - 23 часа. Он не будет показывать 27 часов или конвертировать 12 дней в часы, он просто отключит их, как если бы они никогда не существовали.
Один из способов исправить это - создать расширение, которое проверяет длину TimeSpan и создает форматирование, основанное на том, если период времени превышает год, день и т. Д. Или вы могли просто показывать дни, потому что они никогда не прерывались:
string newFormat = span.ToString("d'd 'h'h 'm'm 's's'");
Обратите внимание, что я начинаю программировать. Это происходит только из наблюдений после того, как мне посчастливилось заметить это, предположив, что это будет показывать все часы. Я говорю об этом, потому что я не знаю, есть ли лучшее решение, например, другой формат часов, который может отображать бесконечные часы.
Однако я считаю, что этот формат выполняет намеченные функции. Вы просто должны знать об этом. Таким образом, этот пост. Ответ Джона Скита никогда не указывал, что этот формат должен показывать только свойство часа формата даты, где часы могут быть не более 23.
Попробуйте следующее:
itemN = QtGui.QListWidgetItem()
#Create widget
widget = QtGui.QWidget()
widgetText = QtGui.QLabel("I love PyQt!")
widgetButton = QtGui.QPushButton("Push Me")
widgetLayout = QtGui.QHBoxLayout()
widgetLayout.addWidget(widgetText)
widgetLayout.addWidget(widgetButton)
widgetLayout.addStretch()
widgetLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
widget.setLayout(widgetLayout)
itemN.setSizeHint(widget.sizeHint())
#Add widget to QListWidget funList
funList.addItem(itemN)
funList.setItemWidget(itemN, widget)
Как вы можете видеть, вам нужно setSizeConstraint
в макете, а setSizeHint
- на элемент.
setSizeHint
к элементу? Он кажется i>, оставляя внеsetSizeHint
, не меняет внешний вид моего графического интерфейса. 2) Почему мой размер подсказывал по умолчанию -1, -1 в первую очередь, и как это исправить 'SetFixedSize'? Почему он просто не исправляет его при неправильном значении (-1, -1). Какие-нибудь хорошие документы переходят на все эти вопросы? (Документы включают: qt-project.org/doc/qt-4.8/qt.html#SizeHint-enum и qt-project.org/doc/qt-4.8/qlayout.html# SizeConstraint-перечисление ) – neuronet 5 October 2014 в 15:35QLayout::SetFixedSize
Размер главного виджета установлен наsizeHint();
, он не может быть изменен вообще. Если вы не укажете размер подсказки, ваш виджет с меткой и кнопкой будет больше, чем элемент, поэтому он будет крайне уродлив и не правильный. – Chernobyl 5 October 2014 в 15:43