ZBLOG

Qtableview 编辑框 颜色

QTableView 中自定义编辑框的颜色,可以通过设置样式表来实现。具体来说,QLineEdit 是用于单元格编辑时默认的编辑框,你可以使用样式表为其设置背景颜色、边框等属性。

1. 自定义 QTableView 的编辑框样式

以下是如何为 QTableView 设置自定义编辑框颜色的示例代码:

#include <QApplication>
#include <QTableView>
#include <QStandardItemModel>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    // 创建 QTableView 和模型
    QTableView tableView;
    QStandardItemModel model(4, 2); // 4 行 2 列

    // 设置表头
    model.setHorizontalHeaderLabels(QStringList() << "Name" << "Age");

    // 填充数据
    model.setItem(0, 0, new QStandardItem("Alice"));
    model.setItem(0, 1, new QStandardItem("25"));

    model.setItem(1, 0, new QStandardItem("Bob"));
    model.setItem(1, 1, new QStandardItem("30"));

    // 设置模型到视图
    tableView.setModel(&model);
    
    // 设置为可编辑
    tableView.setEditTriggers(QAbstractItemView::DoubleClicked | 
                               QAbstractItemView::SelectedClicked);

   // 样式表,自定义编辑框颜色和其他外观元素
   tableView.setStyleSheet(
       "QTableView {"
       "border: 1px solid gray;"
       "gridline-color: lightgray;"
       "}"
       "QHeaderView::section {"
       "background-color: #f7f7f7;"
       "color: black;"
       "padding: 4px;"
       "}"
       "QLineEdit {"
       "background-color: lightyellow;" // 编辑框背景颜色
       "border: 1px solid blue;"        // 编辑框边框颜色
       "}"); 

   tableView.show();
    
   return app.exec();
}

注意事项:

  • 上面的样式表会影响整个 QTableView 的外观,而不仅仅是单元格的编辑状态。由于 QTableWidget 默认使用 QLineEdit 来进行文本输入,因此通过样式表改变 QLineEdit 的外观会影响所有可编辑单元格。
  • 如果你想要更细致地控制哪些单元格在编辑时显示不同的样式,可能需要创建自定义委托(delegate),并重写相关的方法。

希望这对你有帮助!如果有更多问题,请随时询问。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=20322

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?