QT使用表格控件修改颜色

一、修改第一列颜色

方式一:

QTableWidgetItem *item;                                      
// 设置第一列的背景颜色为红色                                             
for (int row = 1; row < ui->tableWidget->rowCount(); row++) {
    item = new QTableWidgetItem();                           
    item->setBackgroundColor(Qt::green);                     
    ui->tableWidget->setItem(row, 3, item);                  
}                      

方式二:

//    // 设置列的背景颜色
//    for(int row = 1; row < ui->tableWidget->rowCount(); row++) {
//        ui->tableWidget->item(row, 3)->setBackground(QColor(Qt::darkGreen));
//        ui->tableWidget->item(row, 3)->setForeground(QColor(Qt::black));
//        ui->tableWidget_2->item(row, 3)->setBackground(QColor(Qt::darkGreen));
//        ui->tableWidget_2->item(row, 3)->setForeground(QColor(Qt::black));
//    }                                     

二、通过获取链表内容,修改对应颜色

    if(trendcol==3 && trendrow!=0)
    {

        static int n=0;
        QList <QString> modelist={"OFF","ON"};

        QString modecount=modelist.at(n);
        QTableWidgetItem *item=new QTableWidgetItem(modecount);
        ui->tableWidget->setItem(trendrow,3,item);
        //修改里面的显示内容,改变对应颜色
        if (modecount == "ON") {
            // 设置背景色为绿色
            ui->tableWidget->item(row, 3)->setBackground(QColor(Qt::darkGreen));
        } else if (modecount == "OFF") {
            // 设置前景色为黑色
            ui->tableWidget->item(row, 3)->setForeground(QColor(Qt::white));
        }

        n++;
    }

三、在表格对应列写入下拉框控件,点击下拉框控件时触发标志位,相当于一个事件过滤器

    for(int i=1; i<9; i++){

        QComboBox *comboBox_2 = new QComboBox();
        comboBox_2->addItem("1");
        comboBox_2->addItem("2");
        comboBox_2->addItem("E3");
        comboBox_2->addItem("E4");
        comboBox_2->addItem("5");
        comboBox_2->addItem("6");
        comboBox_2->addItem("7");

        comboBox_2->setStyleSheet("QComboBox { background-color: black; color: white; }");
//        ui->tableWidget->setCellWidget(i, 2, comboBox);
        ui->tableWidget_2->setCellWidget(i,2,comboBox_2);
        //index参数代表下拉框选中的选项索引
        connect(comboBox_2, QOverload<int>::of(&QComboBox::activated),
                   [=](int index) {
               // 在此处处理下拉框控件被点击的事件
               // 设置page=1标志位
               page_pag = 2;
           });
    }

四、编写下拉框控件,将其写成八个数组,对其操作

//    QComboBox *comboBoxArray[8]; // 创建一个包含5个comboBox对象的数组
//    QComboBox *comboBox_2 = new QComboBox();
        comboBox_2->addItem("1");
        comboBox_2->addItem("2");
        comboBox_2->addItem("E3");
        comboBox_2->addItem("E4");
        comboBox_2->addItem("5");
        comboBox_2->addItem("6");
        comboBox_2->addItem("7");
//    comboBox_2->setStyleSheet("QComboBox { background-color: black; color: white; }");

//    static int k=0;
//    for(int j=1;j<9;j++)
//    {
//        if(k<8)
//        {
//             ui->tableWidget_2->setCellWidget(j,2,comboBoxArray[trendrow-1]);
//             k+=1;
//        }

//        qDebug()<<"comboBoxArray[trendrow-1]----:"<<comboBoxArray[trendrow-1];
//    }

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值