您的位置:首页 > 编程语言 > Qt开发

QTableWidget的使用

2013-01-30 08:52 435 查看
FriendTable->setFrameShape(QFrame::NoFrame); //设置边框

FriendTable->setHorizontalHeaderLabels(HeadList); 设置表头

FriendTable->setSelectionMode(QAbstractItemView::SingleSelection); 设置选择的模式为单选择

FriendTable->setSelectionBehavior(QAbstractItemView::SelectRows); 设置选择行为时每次选择一行

FriendTable->setShowGrid(false); 设置不显示格子线

FriendTable->setFont(font); 设置字体

设置表单背景或透明

QPalette pal = musicTable->palette();

pal.setBrush(this->backgroundRole(),QBrush(QPixmap("images/background.png")) );

musicTable->setPalette( pal );

设置它的背景图片,也可以将QBrush初始化为QColor来设置背景颜色

QPalette pll = musicTable->palette();

pll.setBrush(QPalette::Base,QBrush(QColor(255,255,255,0)));

musicTable->setPalette(pll); //和QTextEdit一样,都可以使用样式表QPalette来修改它的背景颜色和背景图片,这里我们把刷子设置为全透明的,就可以是透明的

在QTableWidget列表中添加图片的方法

QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));

cubesHeaderItem->setIcon(QIcon(QPixmap("1.png")));

cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);

musicTable->setItem(1,1,cubesHeaderItem); //在第一行第一列中显示图片

*******************表头的属性修改****************

musicTable->horizontalHeader()->resizeSection(0,150); //修改表头第一列的宽度为150

musicTable->horizontalHeader()->setFixedHeight(25); //修改表头合适的高度

musicTable->horizontalHeader()->setStyleSheet("QHeaderView::section {background-color:lightblue;color: black;padding-left: 4px;border: 1px solid #6c6c6c;}"); //设置表头字体,颜色,模式

FriendTable->verticalHeader()->setStyleSheet("QHeaderView::section { background-color:skyblue;color: black;padding-left: 4px;border: 1px solid #6c6c6c}"); //设置纵列的边框项的字体颜色模式等

本来想找找QT里有没有现成的API的,结果没有找到,只能自己写了。

实现也好实现,QTableWidgetItem里面有修改背景色的API,直接调用,然后用循环控制隔行换色即可。

实现代码:

void testtt::changeColor(QTableWidget *tablewidget){

for (int i = 0;i < tablewidget->rowCount();i++)

{

if (i % 2 == 0)

{

for (int j = 0;j < tablewidget->columnCount();j++)

{

QTableWidgetItem *item = tablewidget->item(i,j);

if (item)

{

const QColor color = QColor(252,222,156);

item->setBackgroundColor(color);

}

}

}

}

使用

向表中插入一项

QTableWidgetItem *num=new QTableWidgetItem(QTableWidgetItem::Type);

num->setCheckState(Qt::Unchecked); //加入复选框

num->setIcon(QIcon("images/fetion.png")); //加入ICon

num->setText(InfoList.at(i).name);

num->setFont(font);

num->setTextColor(color);

num->setFlags(num->flags() ^ Qt::ItemIsEditable);

int currentRow=FriendTable->rowCount(); //插入到最后

FriendTable->insertRow(currentRow);

FriendTable->setItem(currentRow,0,num); //插入该Item

FriendTable->selectRow(0); 选择第一行

删除某一行 列

FriendTable->removeRow(row);

FriendTable->removeColumn (column );

信号

void cellActivated ( int row, int column )

void cellChanged ( int row, int column )

void cellClicked ( int row, int column )

void cellDoubleClicked ( int row, int column )

void cellEntered ( int row, int column )

void cellPressed ( int row, int column )

void currentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn )

void currentItemChanged ( QTableWidgetItem * current, QTableWidgetItem * previous ) 改变Item了

void itemActivated ( QTableWidgetItem * item )

void itemChanged ( QTableWidgetItem * item )

void itemClicked ( QTableWidgetItem * item )

void itemDoubleClicked ( QTableWidgetItem * item )

void itemEntered ( QTableWidgetItem * item )

void itemPressed ( QTableWidgetItem * item )

void itemSelectionChanged ()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: