QT QTableView用法小结

QTableView常用于实现数据的表格显示。下面我们如何按步骤实现学生信息表格:

一 添加表头

    //准备数据模型
    QStandardItemModel *student_model = new QStandardItemModel();
    student_model->setHorizontalHeaderItem(0, new QStandardItem(QObject::tr("Name")));
    student_model->setHorizontalHeaderItem(1, new QStandardItem(QObject::tr("NO.")));
    student_model->setHorizontalHeaderItem(2, new QStandardItem(QObject::tr("Sex")));
    student_model->setHorizontalHeaderItem(3, new QStandardItem(QObject::tr("Age")));
    student_model->setHorizontalHeaderItem(4, new QStandardItem(QObject::tr("College")));
    //利用setModel()方法将数据模型与QTableView绑定
    ui->student_tableview->setModel(student_model);


二 设置表格属性

    //设置列宽不可变动,即不能通过鼠标拖动增加列宽       
    ui->student_tableview->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);   
    ui->student_tableview->horizontalHeader()->setResizeMode(1, QHeaderView::Fixed);   
    ui->student_tableview->horizontalHeader()->setResizeMode(2, QHeaderView::Fixed);   
    ui->student_tableview->horizontalHeader()->setResizeMode(3, QHeaderView::Fixed);   
    ui->student_tableview->horizontalHeader()->setResizeMode(4, QHeaderView::Fixed);   

    //设置表格的各列的宽度值       
    ui->student_tableview->setColumnWidth(0,100);   
    ui->student_tableview->setColumnWidth(1,100);   
    ui->student_tableview->setColumnWidth(2,100);   
    ui->student_tableview->setColumnWidth(3,100);   
    ui->student_tableview->setColumnWidth(4,100);       

    //默认显示行头,如果你觉得不美观的话,我们可以将隐藏       
    ui->student_tableview->verticalHeader()->hide();      

    //设置选中时为整行选中       
    ui->student_tableview->setSelectionBehavior(QAbstractItemView::SelectRows);         
     
    //设置表格的单元为只读属性,即不能编辑       
    ui->student_tableview->setEditTriggers(QAbstractItemView::NoEditTriggers);          

    //如果你用在QTableView中使用右键菜单,需启用该属性       
    ui->tstudent_tableview->setContextMenuPolicy(Qt::CustomContextMenu);

 

三 动态添加行

    在表格中添加行时,我们只需要在model中插入数据即可,一旦model中的数据发生变化,QTabelView显示就会做相应的变动

    //在第一行添加学生张三的个人信息(setItem函数的第一个参数表示行号,第二个表示列号,第三个为要显示的数据)
    student_model->setItem(0, 0, new QStandardItem(“张三"));
    student_model->setItem(0, 1, new QStandardItem("20120202"));
    student_model->setItem(0, 2, new QStandardItem("男"));
    student_model->setItem(0, 3, new QStandardItem("18"));
    student_model->setItem(0, 4, new QStandardItem("土木学院"));


四 设置数据显示的样式

    //设置单元格文本居中,张三的数据设置为居中显示
    student_model->item(0, 0)->setTextAlignment(Qt::AlignCenter);
    student_model->item(0, 1)->setTextAlignment(Qt::AlignCenter);
    student_model->item(0, 2)->setTextAlignment(Qt::AlignCenter);
    student_model->item(0, 3)->setTextAlignment(Qt::AlignCenter);
    student_model->item(0, 4)->setTextAlignment(Qt::AlignCenter);

    //设置单元格文本颜色,张三的数据设置为红色
    student_model->item(0, 0)->setForeground(QBrush(QColor(255, 0, 0)));
    student_model->item(0, 1)->setForeground(QBrush(QColor(255, 0, 0)));
    student_model->item(0, 2)->setForeground(QBrush(QColor(255, 0, 0)));
    student_model->item(0, 3)->setForeground(QBrush(QColor(255, 0, 0)));
    student_model->item(0, 4)->setForeground(QBrush(QColor(255, 0, 0)));

    //将字体加粗
    student_model->item(0, 0)->setFont( QFont( "Times", 10, QFont::Black ) );
    student_model->item(0, 1)->setFont( QFont( "Times", 10, QFont::Black ) );
    student_model->item(0, 2)->setFont( QFont( "Times", 10, QFont::Black ) );
    student_model->item(0, 3)->setFont( QFont( "Times", 10, QFont::Black ) );
    student_model->item(0, 4)->setFont( QFont( "Times", 10, QFont::Black ) );

    //设置排序方式,按年龄降序显示
    student_model->sort(3, Qt::DescendingOrder);

  • 16
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Qt中的水平滚动条(QScrollBar)用于在水平方向上滚动内容。它可以与其他Qt小部件一起使用,例如QTableViewQTextEdit,以便用户可以滚动内容以查看隐藏的部分。 使用Qt Designer可以轻松地将水平滚动条添加到Qt应用程序中。您可以在Qt Designer中选择QScrollBar小部件并将其拖放到您的应用程序窗口中。然后,您可以使用属性编辑器来更改滚动条的外观和行为。 在代码中,您可以使用QScrollBar类的方法来控制滚动条的位置和行为。例如,您可以使用setValue()方法将滚动条设置为特定值,或使用setRange()方法设置滚动条的最小值和最大值。您还可以使用valueChanged()信号来捕获滚动条值的更改,并执行相应的操作。 总之,Qt的水平滚动条是一个非常有用的小部件,可以帮助您创建具有滚动功能的应用程序。 ### 回答2: Qt中的HorizontalScrollBar是一个水平滚动条,可用于许多UI控件中,如QTextEdit,QListView和QTableView等,它可以帮助用户在水平方向上浏览内容。下面让我们详细了解一下Qt HorizontalScrollBar的使用方法: 1. 创建HorizontalScrollBar 要使用HorizontalScrollBar,首先需要创建它。在Qt中,我们可以使用QScrollBar类来创建一个HorizontalScrollBar。 代码示例: QScrollBar *scrollBar = new QScrollBar(Qt::Horizontal); 其中,Qt::Horizontal参数用于指定创建一个水平滚动条。 2. 设置滚动条的范围 要使用HorizontalScrollBar,我们需要指定它的范围,以便用户可以在该范围内移动滑块。 代码示例: scrollBar->setRange(0, 100); 上面的代码将水平滚动条的范围设置为0到100。 3. 设置滑块值 设置滚动条的当前值,可以将滑块移动到指定位置。 代码示例: scrollBar->setValue(50); 上面的代码将滑块移动到了滚动条的中间位置。 4. 连接滑块值的变化 当用户滚动滑块时,它的值会发生变化。为了获取值的变化并做出相应的反应,我们可以连接valueChanged()信号。 代码示例: connect(scrollBar, SIGNAL(valueChanged(int)), this, SLOT(onScrollBarValueChanged(int))); 其中,onScrollBarValueChanged()是一个槽函数,用于响应valueChanged()信号的变化。 5. 滚动条风格 我们可以指定滚动条的风格,使其与UI的外观相匹配。 代码示例: scrollBar->setStyleSheet("QScrollBar {background-color: grey;}" "QScrollBar::handle {background-color: white;}" "QScrollBar::add-line, QScrollBar::sub-line {background-color: red;}"); 上面的代码将滚动条的背景色设置为灰色,滑块的背景色设置为白色,并将增加和减少线的背景色设置为红色。 总结 Qt HorizontalScrollBar可用于在水平方向上滚动UI控件的内容。我们可以使用QScrollBar类创建滚动条,设置其范围和值,并连接valueChanged()信号以响应其值的变化。我们还可以通过设置滚动条的样式来自定义其外观。 ### 回答3: QT是一种跨平台的操作系统,可以实现基于C++的GUI应用程序开发。其中的horizontalScrollBar是QT桌面应用程序中的一个小部件,可以用来创建一个水平滚动条。该小部件提供一个面向用户的水平滚动条,用户可以使用它来滚动水平方向上的内容显示区域。下面是该小部件的一些用法: 1.创建horizontalScrollBar对象 在QT项目中,可以使用QScrollBar类来实现horizontalScrollBar,通过设置小部件的相关属性可以实现水平滚动条,例如: QScrollBar *horzBar = new QScrollBar(Qt::Horizontal); 2.设置水平滚动条的范围和步进值 可以使用setRange()方法来设置水平滚动条的范围,setPageStep()方法来设置单步步进值,setSingleStep()方法来设置单页步进值。例如: horzBar->setRange(0, 1000);//设置滚动范围 horzBar->setPageStep(100);//设置单步步进值 horzBar->setSingleStep(10);//设置单页步进值 3.捕获滚动条值被改变的信号 在QT中,可以通过connect connect()方法来连接信号和槽函数(connect (objectSendSignal, signal, objectReceiveSlot, slot ) )。当滚动条的值被更改时,会发出valueChanged()信号,可以将其连接到一个槽函数中,实现对滚动条值变化的相应操作。例如: connect(horzBar, SIGNAL(valueChanged(int)), this, SLOT(scrollBarValueChanged(int))); void myWidget::scrollBarValueChanged(int value) { //Do something. } 以上就是关于QT水平滚动条小部件horizontalScrollBar的一些基本用法,希望能对QT桌面应用程序开发初学者有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值