1. 程式人生 > >QListWidget和QTableWidget的使用和屬性;QTableWidget和QListWidget樣式表的設定及滾動條的樣式設定

QListWidget和QTableWidget的使用和屬性;QTableWidget和QListWidget樣式表的設定及滾動條的樣式設定

//二、QTableWidget table_widget = new QTableWidget(15,5); QStringList header; header<<"Name"<<"Date"<<"Description"<<"Size"<<"Other"; QStringList vertical_header; vertical_header<<"One"<<"Two"<<"Three"<<"Four"<<"Five"<<"Six"; //設定表頭標籤 table_widget->
setHorizontalHeaderLabels(header); table_widget->setVerticalHeaderLabels(vertical_header); table_widget->setItem(0,0,new QTableWidgetItem("Jan")); table_widget->setItem(1,0,new QTableWidgetItem("Feb")); table_widget->setItem(2,0,new QTableWidgetItem("Mar")); table_widget->setItem(0,1,new
QTableWidgetItem(QIcon(":/res/pix/refresh.png"),"Refresh")); //一、對QtableWidget本身的效果實現 //1、將表格設定為禁止編輯 table_widget->setEditTriggers(QAbstractItemView::NoEditTriggers); //2、將表格設定為整行選擇 table_widget->setSelectionBehavior(QAbstractItemView::SelectRows); //3、單個選中和多個選中設定 //設定為可以選中多個目標 //主要功能是:在正常情況下是單選,但按下Ctrl或Shift鍵後,可以多選
table_widget->setSelectionMode(QAbstractItemView::ExtendedSelection); //4、表頭的顯示與隱藏 table_widget->verticalHeader()->setVisible(false); //隱藏列表頭 //table_widget->horizontalHeader()->setVisible(false); //隱藏行表頭 //5、對錶頭文字的字型、顏色進行設定 //獲得水平方向表頭的item物件 QTableWidgetItem *columnHeaderItem = table_widget->horizontalHeaderItem(1); columnHeaderItem->setFont(QFont("Helvetica")); //設定字型 columnHeaderItem->setBackgroundColor(QColor(0,60,10)); //設定單元格背景顏色 columnHeaderItem->setTextColor(QColor(200,111,30)); //設定文字顏色 //6、在單元格里加入控制元件 //把一個下拉框加入單元格 QComboBox *comBo = new QComboBox(); comBo->addItem("Y"); comBo->addItem("N"); table_widget->setCellWidget(0,2,comBo); //二、對單元格進行設定 //1、單元格設定字型顏色、背景顏色、字型字元 QTableWidgetItem *item = new QTableWidgetItem("Apple"); item->setBackgroundColor(QColor(0,60,10)); item->setTextColor(QColor(200,111,100)); item->setFont(QFont("Helvetica")); table_widget->setItem(0,3,item); //對所有單元格設定字型 //table_widget->setFont(QFont("Courier")); //2、設定單元格內文字對齊方式 item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); //3、合併單元格 //引數為:合併的起始行列數(0,0),合併的行數(3行),合併的列數(1列) table_widget->setSpan(0,0,3,1); //4、設定單元格大小 //可以指定單個行或者列的大小 table_widget->setColumnWidth(3,200); table_widget->setRowHeight(3,60); //將行和列的大小設為與內容相匹配 //table_widget->resizeColumnsToContents(); //table_widget->resizeRowsToContents(); //設定交替行顏色選項(預設是false) //對應於alternate-background-color:blue; /*藍色*/ //否則無法交替顯示顏色 //table_widget->setAlternatingRowColors(true); //將header最後的空間補全,僅僅是通過延伸最後一個單元格實現的,而沒有單元格平分 table_widget->horizontalHeader()->setStretchLastSection(true); //單元格延伸後,實現單元格平分 table_widget->horizontalHeader()->setResizeMode(QHeaderView::Stretch); //三、表頭設定 //1、設定表頭不可點選(預設點選後進行排序) table_widget->horizontalHeader()->setClickable(false); table_widget->verticalHeader()->setClickable(false); //2、設定表頭字型加粗 QFont font; font.setBold(true); table_widget->horizontalHeader()->setFont(font); table_widget->verticalHeader()->setFont(font); //設定行高,與表頭高度無關 //table_widget->verticalHeader()->setDefaultSectionSize(50); //設定寬度 //table_widget->horizontalHeader()->setDefaultSectionSize(30); //設定表頭文字顯示格式 table_widget->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter | Qt::AlignVCenter); //設定無邊框 //table_widget->setFrameShape(QFrame::NoFrame); //設定不顯示格子線 //table_widget->setShowGrid(false); //設定表頭第一列的寬度為150 //table_widget->horizontalHeader()->resizeSection(0,150); //設定表頭高度 //table_widget->horizontalHeader()->setFixedHeight(150); //設定表格樣式 table_widget->setStyleSheet( "color:green;" /*"gridline-color:red;"*/ /*表格中的網格線條顏色*/ "background:white;" /*"alternate-background-color:red;"*/ /*設定交替顏色*/ "selection-color:red;" "selection-background-color:lightgray;" "border:1px solid gray;" ); //設定表頭樣式 table_widget->horizontalHeader()->setStyleSheet("background-color:#F0F0F0;"); #if 0 //樣式二 table_widget->horizontalHeader()->setStyleSheet( "QHeaderView::section{background:skyblue; padding-left:4px; border:3px solid red; }" "QHeaderView::section:checked{background-color:green; }" ); #endif #if 1 //設定垂直滾動條樣式 table_widget->verticalHeader()->setStyleSheet( "QScrollBar{background:transparent; height:10px; }" "QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px; }" "QScrollBar::handle:hover{background:gray; }" "QScrollBar::handle:pressed{background:black;}" "QScrollBar::sub-line{background:transparent;}" "QScrollBar::add-line{background:transparent;}" ); #endif //清除所有可見資料(包括表頭),行還在 //tableWidget->clear(); //只清除表中資料,不清除表頭內容 //tableWidget->clearContents(); //連行也清除 //tableWidget->setRowCount(0); //tableWidget->setColumnCount(0); //獲取表格中當前總行數 int row = table_widget->rowCount(); qDebug()<<row; //新增一行 //tableWidget->setRowCount(row+1); //清除已有的行列 //tableWidget->removeRow(row); //去掉水平滾動條 //tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //垂直滾動條按項移動 //tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); //去掉自動滾動條 //tableWidget->setAutoScroll(false);