Tôi không nghĩ rằng có một phương pháp hiện có cho điều này, nhưng đây là hai cách tiếp cận phù hợp:
1.) Subclass QTableWidgetItem
MyTableWidgetItem::MyTableWidgetItem() :
QTableWidgetItem()
{
setTextAlignment(Qt::AlignLeft);
}
Tuy nhiên, đây có lẽ là một chút overkill cho chỉ một thiết lập duy nhất + bạn có thể muốn quá tải tất cả bốn nhà thầu của QTableWidgetItem.
2.) Một cách khác là using a factory instead of calling new:
Lưu ý: Các cuộc đàm phán bài viết liên quan về kiểm tra đơn vị, nhưng có rất nhiều lợi thế hơn bằng cách làm điều đó.
QTableWidgetItem* MyTableWidgetFactory::createTableWidgetItem(const QString& text) const
{
QTableWidgetItem* item = new QTableWidgetItem(text);
item->setTextAlignment(Qt::AlignLeft);
return item;
}
Sau đó, thay vì
QTableWidgetItem* myItem = new QTableWidgetItem("foo");
item->setTextAlignment(Qt::AlignLeft);
bạn có thể làm
QTableWidgetItem* myItem = myFactory->createTableWidgetItem("foo");
nơi myFactory
là một đối tượng của MyTableWidgetFactory
.
Nguồn
2013-04-05 08:21:03