zoukankan      html  css  js  c++  java
  • QT TableWidget 应用笔记

     

    QT TableWidget应用笔记

    分类: QT

    1、设置表头及大小

    QStringList header;

        header<<"ID"<<"NAME"<<"年龄"<<"sex"<<"data";
        ui->tableWidget->setHorizontalHeaderLabels(header);
    ui->tableWidget->setRowCount(3);
        ui->tableWidget->setColumnCount(5);
     
    2、获得和设置单元内容
    connect(ui->tableWidget,SIGNAL(cellClicked(int,int)),SLOT(showmark()));

    void widget::showmark()

    {
        QTableWidgetItem *item = ui->tableWidget->currentItem();
        item->setTextColor(QColor(255,50,50));
        ui->label->setText(item->text());
    
    
    
    
    }
    ui->tableWidget->setItem(xx,yy++,new QTableWidgetItem(ui->lineEdit_2->text()));
    这样获得的item 一定要判断是否为空  若为空 应进行空的对应处理(否则程序会报错退出)
     
    3、插入一行
    ui->tableWidget->insertRow(xx);xx表示对应的位置
    	
    /*给单元格中增加图标*/
    QTableWidgetItem *item = new QTableWidgetItem(QIcon("myImage.jpg"), NULL);  //只加入图标,没有字符串
    QTableWidgetItem *item = new QTableWidgetItem(QIcon("myImage.jpg"), myString);   //加入图标和字符串
    table->setItem(row, column, item);
    /*插入一行*/
    int row = table->rowCount();
    table->insertRow(row);
    /*插入一列*/
    int column = table->columnCount();
    table->insertColumn(column);
    //使行列头自适应宽度,最后一列将会填充空白部分
    table->horizontalHeader()->setStretchLastSection(true);          
    //使行列头自适应宽度,所有列平均分来填充空白部分            
    table->horizontalHeader()->setResizeMode(QHeaderView::Strtch);        
    //使行自适应高度,假如行很多的话,行的高度不会一直减小,当达到一定值时会自动生成一个QScrollBar
    table->verticalHeader()->setResizeMode(QHeaderView::Strtch);
    //设置单击选择一行
    table->setSelectionBehuavior(QAbstractItemView::SelectRows);
    //设置每行内容不可编辑
    table->setEditTriggers(QAbstractItemView::NoEditTriggers);
    //设置只能选择一行,不能选择多行
    table->setSelectionMode(QAbstractItemView::SingleSelection);
    /*去掉每行的行号*/
    QHeaderView *headerView = table->verticalHeader();
    headerView->setHidden(true);
    /*设置让某个单元格或某行选中*/
    选中单元格:table->setCurrentCell(row, column, QItemSelectionModel::Select);
    选中一行:table->setCurrentCell(row, QItemSelectionModel::Select);(注意此处的列没有值)
     
    4、删除某一行 列

    FriendTable->removeRow(row);

    FriendTable->removeColumn (column );

     
    5、

    设置表单背景或透明

    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来修改它的背景颜色和背景图片,这里我们把刷子设置为全透明的,就可以是透明的

    6、隔行显示颜色

    ui->tableWidget->setAlternatingRowColors(1); 

    1. this->ui->friendList->setSelectionMode(QAbstractItemView::SingleSelection); //设置只能选择一行,不能多行选中   
    2. this->ui->friendList->setEditTriggers(QAbstractItemView::NoEditTriggers);   //设置每行内容不可更改   
    3. this->ui->friendList->setAlternatingRowColors(true);                        //设置隔一行变一颜色,即:一灰一白 
  • 相关阅读:
    LeetCode18. 四数之和
    15. 三数之和
    LeetCode202. 快乐数
    LeetCode1. 两数之和
    LeetCode349. 两个数组的交集
    LeetCode242. 有效的字母异位词
    VSCode运行时弹出powershell
    关于cin, cin.get(), getchar(),getline()的字符问题
    剑指 Offer 27. 二叉树的镜像
    BFS zoj 1649
  • 原文地址:https://www.cnblogs.com/yelanggu/p/3987899.html
Copyright © 2011-2022 走看看