//获取TableWidgetItem
QTableWidgetItem* getTableWidgetItem(QTableWidget*table,int row ,int column,int alignment=Qt::AlignCenter)
{
QTableWidgetItem* pItem = table->item(row,column); //找到单元格
if(pItem == 0)
{
pItem = new QTableWidgetItem();
pItem->setTextAlignment(alignment);
pItem->setFont(table->font());
table->setItem(row, column, pItem);
}
return pItem;
}
//处理TableWidgetItem
QTableWidgetItem* setTableWidgetItem(QTableWidget*table,int row ,int column,QString text,int alignment=Qt::AlignCenter)
{
QTableWidgetItem* pItem = getTableWidgetItem(table,row,column,alignment);
if(pItem != 0)
{
pItem->setText(text);
pItem->setTextAlignment(alignment);
}
return pItem;
}
//获取TableWidgetItem
QString getTableWidgetItemStr(QTableWidget*table,int row ,int column)
{
QTableWidgetItem* pItem = getTableWidgetItem(table,row,column);
if(pItem != 0)
return pItem->text();
return "";
}
//更新表头
void updateTableWidgetHead(QTableWidget *tablewidget, QStringList headlist, QStringList vheadlist,bool stretch,bool backColor)
{
tablewidget->clear();
tablewidget->setColumnCount(headlist.size());
tablewidget->setHorizontalHeaderLabels(headlist);
//tablewidget->horizontalHeader()->setFont(getFontAdptive());
tablewidget->setHorizontalHeaderLabels(headlist);
if(vheadlist.size()!=0)
{
tablewidget->verticalHeader()->setVisible(true);
}else{
tablewidget->verticalHeader()->setVisible(false);
}
tablewidget->horizontalHeader()->setVisible(true);
tablewidget->horizontalHeader()->setStyleSheet("QHeaderView::section {background-color:rgb(220,221,221);"
"border-color:rgb(200,199,199);"
"border-style:solid;"
"border-width:1px;}");
tablewidget->horizontalHeader()->setFixedHeight(40); //设置表头的高度
tablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
tablewidget->setSelectionBehavior(QAbstractItemView::SelectRows);
tablewidget->setSelectionMode(QAbstractItemView::SingleSelection);
tablewidget->setFocusPolicy(Qt::NoFocus);
tablewidget->horizontalHeader()->setHighlightSections(false);
if(stretch)
{
tablewidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
}
if(backColor)
{
tablewidget->setStyleSheet("QTableWidget::item:selected{\
padding:-1px;background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, \
stop:0 rgba(255, 255, 255, 255), \
stop:0.5 rgba(235, 247, 253, 255), \
stop:1 rgba(213, 237, 250, 255));\
border: 1px solid rgb(65,173,255);\
}QTableWidget::item:disabled {background: rgba(240, 240, 240, 255);color:rgb(160,160,160);border: 0px solid rgb(65,173,255);}");
}
QScrollBar * bar = tablewidget->verticalScrollBar();
QString sheet;
sheet = QString ("QScrollBar:vertical{min-width:%1px;min-height:%2px;background-color:rgba(239, 239, 239, 255); margin:0px,0px,0px,0px;border: 1px solid rgb(185, 185, 185);}\
QScrollBar::handle:vertical{min-height:%2px;background-color:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(250, 250, 250, 255), stop:0.5 rgba(210, 210, 210, 255), stop:1 rgba(208, 208, 208, 255));\
border: 1px solid rgb(185, 185, 185); border-left: rgba(0, 0, 0, 0);}\
QScrollBar::add-line:vertical { height:0px; subcontrol-position:bottom;}\
QScrollBar::sub-line:vertical { height:0px; subcontrol-position:top;}")
.arg(16).arg(50);
bar->setStyleSheet(sheet);
}
//更新表头
void updateTableWidgetHead(QTableWidget *tablewidget, QStringList headlist,bool stretch,bool backColor)
{
updateTableWidgetHead(tablewidget,headlist,QStringList(),stretch,backColor);
}
//增加表格项
void addTableWidgetItem(QTableWidget*table,int row,int column,QString text,int height=40,QColor color=Qt::white,bool bcolor = false,int alignment=Qt::AlignCenter)
{
if(row <0 || column <0)
return;
if(row >= table->rowCount())
table->setRowCount(row+1);
if(column >= table->columnCount())
table->setColumnCount(column+1);
QTableWidgetItem *item = setTableWidgetItem(table,row,column,text,alignment);
if(item != 0)
{
if(bcolor)
item->setBackground(color);
table->setRowHeight(row,height);
}
}
QTableWidget 常用接口封装一
最新推荐文章于 2024-06-22 11:30:47 发布