目录
1.效果:
2.滑动
3.居中
4.选中加粗
5.使用的样式表
1.效果:
2.滑动
在使用触控屏时需要列表或视图能够滑动查看
ui->tableView->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
QScroller* scroller = QScroller::scroller(ui->tableView->viewport());
scroller->grabGesture(ui->tableView>viewport(),QScroller::LeftMouseButtonGesture);
为滚动区域注册了 鼠标左键的手势识别器,在触摸屏上时可以设置为 QScroller::TouchGesture
触摸手势,很多view都可以实现滑动:QListView,QComboBox下拉框滑动...
也可以自己配置滚动属性:具体属性和值范围可以直接跳转帮助文档查看。
QScrollerProperties properties = scroller->scrollerProperties();
properties.setScrollMetric(QScrollerProperties::DragVelocitySmoothingFactor,0.1);
properties.setScrollMetric(QScrollerProperties::FrameRate,QScrollerProperties::Fps60);
scroller->setScrollerProperties(properties);
3.居中
3.1 继承 QSqlQueryModel 重写data函数实现表格数据居中
class MySqlQueryModel : public QSqlQueryModel
QVariant data(const QModelIndex &item, int role=Qt::DisplayRole) const;
QVariant MySqlQueryModel::data(const QModelIndex & index, int role) const
{
if(role == Qt::TextAlignmentRole){
QVariant value = Qt::AlignCenter;
return value;
}
return QSqlQueryModel::data(index,role);
}
3.2 自定义代理实现表格数据居中文章来源:https://www.toymoban.com/news/detail-505873.html
class MyDelegate : public QStyledItemDelegate
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QStyleOptionViewItem newoption(option);
newoption.displayAlignment = Qt::AlignCenter; // 居中显示
QStyledItemDelegate::paint(painter, newoption, index);
}
4.选中加粗
同上,如果是选中状态,则字体加粗文章来源地址https://www.toymoban.com/news/detail-505873.html
void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QStyleOptionViewItem new_option(option);
new_option.displayAlignment = Qt::AlignCenter; // 居中显示
if (new_option.state & QStyle::State_Selected) {
new_option.font.setBold(true); // 变为粗体
}
QStyledItemDelegate::paint(painter, new_option, index);
}
/*使用*/
MyDelegate * deldgate = new MyDelegate();
ui->tableView->setItemDelegate(deldgate);
5.使用的样式表
QHeaderView::section {
font: 20px "微软雅黑";
font-weight:bold;
color: rgb(24, 100, 249);
padding-left: 4px;
border: 1px solid #e2e2e2;
background-color:#cddffe;
}
QTableView{
border:none;
color: rgb(119, 119, 119);
gridline-color:#e2e2e2;
}
QTableView::item::selected{
background-color:#cddffe;
color:rgb(51, 51, 51);
}
/*QTableView 左上角样式*/
QTableView QTableCornerButton::section {
background-color:#cddffe;
border: 1px solid #e2e2e2;
}
到了这里,关于Qt QTableView滑动、居中、选中加粗的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!