- 
UID:202628 
 
- 
- 注册时间2020-05-17
 
- 最后登录2025-01-07
 
- 在线时间456小时
 
 
 
- 
- 发帖399
 
- 搜Ta的帖子
 
- 精华0
 
- 金钱5945
 - 威望440
 - 贡献值0
 - 好评度360
 
 
 
- 
访问TA的空间加好友用道具
 
 
 
 
 
 
  
 
 | 
 
 
  如题,写了一个测试的demo,具体代码如下:
 
 - #if _MSC_VER >= 1600
 - #pragma execution_character_set("utf-8")
 - #endif
 - #include "frmmain.h"
 - #include "itemdelegate.h"
 - FrmMain::FrmMain(QWidget *parent) :
 -     QMainWindow(parent)
 - {
 -     this->initUI();
 - }
 - void FrmMain::initUI()
 - {
 -     this->resize(850, 400);
 -     m_tableView = new QTableView(this);
 -     QStandardItemModel* model = new QStandardItemModel();
 -     /* 设置表格标题行(输入数据为QStringList类型) */
 -     model->setHorizontalHeaderLabels({"ID", "文本"});
 -     /* 自适应所有列,让它布满空间 */
 -     m_tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
 -     ItemDelegate* delegate1 = new ItemDelegate;
 -     m_tableView->setItemDelegateForColumn(1, delegate1);
 -     for (int i = 0; i < 10; i++)
 -     {
 -         model->setItem(i, 0, new QStandardItem(QString("%1").arg(i)));              /* 加载第一列(ID)数据 */
 -         model->setItem(i, 1, new QStandardItem(QString("User%1").arg(i)));         /* 加载第二列(User Name)数据 */
 -     }
 -     /* 设置表格视图数据 */
 -     m_tableView->setModel(model);
 -     this->setCentralWidget(m_tableView);
 - }
 - #include "itemdelegate.h"
 - ItemDelegate::ItemDelegate(QObject *parent)
 -     : QStyledItemDelegate(parent)
 - {
 - }
 - void ItemDelegate::paint(QPainter *painter,const QStyleOptionViewItem &option, const QModelIndex &index) const
 - {
 -     if(index.isValid())
 -     {
 -         painter->save();
 -         int nColumn = index.column();
 -         QVariant    vItemData = index.data(nColumn + (Qt::UserRole + 1));
 -         QStyleOptionViewItem viewOpt(option);
 -         if(1 == nColumn)
 -         {
 -             QString strID = vItemData.toString();
 -             painter->drawText(viewOpt.rect, Qt::AlignCenter, strID);
 -         }
 -         painter->restore();
 -     }
 -     QStyleOptionViewItem itemOption(option);
 -     if(itemOption.state&QStyle::State_HasFocus)
 -     {
 -         itemOption.state=itemOption.state^QStyle::State_HasFocus;
 -     }
 -     QStyledItemDelegate::paint(painter,itemOption,index);
 - }
 - #include <QApplication>
 - #include "frmmain.h"
 - int main(int argc, char *argv[])
 - {
 -     QApplication app(argc, argv);
 -     FrmMain w;
 -     w.show();
 -     return app.exec();
 - }
 
  为啥在代理已经对文本居中显示了,可是运行的结果显示并不是居中的?各位大佬,请问为啥这样做代理好像没有作用?有什么办法可以让代理起作用吗?
  
 
 
 |