注意,给View换字体是直接换。在Delegate里换的只是某一列的字体
class delegate : public QStyledItemDelegate { public: delegate(QObject* parent = 0) : QStyledItemDelegate(parent) {} void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const { QStyledItemDelegate::paint(painter, option, index); } }; int main(int argc, char* argv[]) { QApplication a(argc, argv); QStringList list; list << "a" << "b" << "c"; QListWidget w; w.setFont(QFont("Courier", 30)); delegate d; w.setItemDelegate(&d); w.addItems(list); w.show(); QListView lv; lv.setFont(QFont("Courier", 30)); lv.setItemDelegate(&d); QStringListModel m; m.setStringList(list); lv.setModel(&m); lv.show(); return a.exec(); }
参考:http://www.qtcentre.org/archive/index.php/t-29871.html
-----------------------------------------------------------------------
Delegate里也能换字体,但换的是progress自己的字体(如果用到的话),并不对整个view起作用,例如:
void ProgressBarDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const { if (index.column() == 3) { else { // good 这里换字体是换进度条(第三列)的字体,但是能起作用 painter->save(); painter->setFont(QFont("Times", 10, QFont::Bold)); return QStyledItemDelegate::paint(painter, option, index); painter->restore(); } }
------------------------------------------------------------------------
另外,设置QTableView的行高是:
QTtableView的verticalHeader()->setDefaultSectionSize(15),既可以放在构造函数里,也可以构造完毕后调用。
时间: 2024-10-03 21:41:30