24.QTableView函数使用,右击菜单实现

QTableView view(this);
QStandardItemModel model(this);

model.setHorizontalHeaderItem(0,new QStandardItem("Name"));
model.setHorizontalHeaderItem(1,new QStandardItem("Sex"));
model.setHorizontalHeaderItem(2,new QStandardItem("Age"));
model.horizontalHeaderItem(0)->setFont(QFont("Helvetica",20,50));   //设置标题字体

model.setVerticalHeaderItem(0,new QStandardItem("No.1"));
model.setVerticalHeaderItem(1,new QStandardItem("No.2"));
model.setVerticalHeaderItem(2,new QStandardItem("No.3"));

QPixmap  pix(":user.png");
pix =pix.scaled(24,24,Qt::KeepAspectRatio);
QStandardItem *itemA=new QStandardItem();
itemA->setData(pix,Qt::DecorationRole);                        //设置条目图标
itemA->setData("A",Qt::DisplayRole);
itemA->setData("A:tooltip",Qt::ToolTipRole);
itemA->setData(QFont("宋体",12,QFont::Bold,true),Qt::FontRole); //设置条目字体
itemA->setData(Qt::AlignCenter,Qt::TextAlignmentRole);         //设置条目中心对齐

 QLinearGradient linearGradient(0,0,100,20);
 linearGradient.setColorAt(0.2, Qt::white);
 linearGradient.setColorAt(0.6, Qt::green);
 linearGradient.setColorAt(1.0, Qt::black);
 itemA->setData(QBrush(linearGradient),Qt::BackgroundRole);    //设置条目背景色(为渐变色)

   model.setItem(0,0,itemA);
   model.setItem(0,1,new QStandardItem("B"));
   model.setItem(1,0,new QStandardItem("C"));
   model.item(0,1)->setTextAlignment(Qt::AlignCenter);  //设置条目居中对齐

model.sort(0,Qt::DescendingOrder);
 

view.sortByColumn(0);

 

view.setSortingEnabled(true);

view.setAutoScroll

view->horizontalHeader()->setHighlightSections(false);
view.horizontalHeader()->setResizeMode(QHeaderView::Fixed);

view.verticalHeader()->setResizeMode(QHeaderView::Fixed);

view.setSelectionMode(QAbstractItemView::NoSelection);

view.verticalHeader()->hide();

view.setSelectionMode(QAbstractItemView::SingleSelection);
                       //设置选择模式,表示只能选中单个

view.setSelectionBehavior(QAbstractItemView::SelectRows);

//设置选择行为,表示只能选择一行(也可以设置为列,或者单个Item项目)

view.setEditTriggers(QAbstractItemView::NoEditTriggers);

view.horizontalHeader()->setVisible(false);
view.verticalHeader()->setVisible(false);

view.setShowGrid(false);

view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

view.setColumnWidth(0,50);            //设置column0(第1列)的宽度为50
view.setRowHeight(0,30);               //设置row0(第1行)的高度为30
view.resizeRowsToContents();    //更据当前内容自动调整行距
view.resizeColumnsToContents(); //更据当前内容自动调整列距

view.setFocusPolicy(Qt::NoFocus);

 

qDebug()<<view.currentIndex().row();  //获取行号,如果为-1,表示无效

qDebug()<<view.currentIndex().column();//获取列号,如果为-1,表示无效


文章来源:https://www.cnblogs.com/lifexy/p/9155708.html

原文地址:https://www.cnblogs.com/xiongjim/p/9674155.html

时间: 2024-11-02 10:16:49

24.QTableView函数使用,右击菜单实现的相关文章

WPF实现窗口最小化到托盘,并且实现右击菜单

原版是从网上找了一位大神的,自己只是用了一点适合自己的. 具体实现 1.首先已经确认WPF中没有实现最小化托盘的类与方法,用到了winform中的程序集 using Drawing = System.Drawing;using Forms = System.Windows.Forms; 2.XAML的后代相应事件的Demo,只是为了看起来方便~!其中也包含了在任务栏中不现实图标,只在托盘中显示.双击实现窗口的还原.没用到大神写的,自己琢磨了个,令人想不到的蛋疼的后果还没出现,也就暂时这样了. 1

Qt 鼠标右击菜单建立

这几天在公司进行鼠标右击菜单编写,为SoftPLC项目左边的工程树实现一个右键菜单,分别包括(新建(PPLC.SPLC).增加.删除.重命名.创建PCG文件).遇到一些问题,现在已经得到解决,分享一下: QWidget及其子类都可有右键菜单,因为QWidget有以下两个与右键菜单有关的函数: Qt::ContextMenuPolicy contextMenuPolicy () const void setContextMenuPolicy ( Qt::ContextMenuPolicy poli

自定义控件实现图像的显示和放大缩小,平移,右击菜单选择“自适应窗口”“保存图像”

前面介绍了2个控件组合在一起实现,对PictureBox控件的操作,今天我们自己新建一个控件来自己用. 新建一个Windows窗体解决方案,添加“用户控件”,把PictureBox控件拖到指定的区域,给我们要自己定义的控件改下名字UserControl_Display 界面就完成了,现在我们要自定义的控件添加事件和右击菜单(contextMenuStrip1)控件 1 using System; 2 using System.Collections.Generic; 3 using System

ITOO右击菜单实现

ITOO做了持续了这么长时间,客户端使用MVC+EF+EasyUI框架,服务端在三层基础上添加WCF服务,后来加入容器,AOP(还没怎么接触),封装了在我们刚开始看来神秘的底层方法,克服了很多技术难点,单点登录,动态建库切库...发现自己需要积累的还有很多很多,ITOO做到现在3.1,成绩系统也算到了3.0吧,不管自己进度还是什么原因,没能加入ITOO1.0,很快跟了ITOO1.0的尾巴,和ITOO2.0同步,做了成绩1.0的组长,当时新阳的一句总结很犀利:组长就是技术上什么都不懂,但哪个地方都

给文件右击菜单增加7-ZIP浏览功能(用注册表设置Shell调用预览命令)

疯狂delphi delphiXE7.XE8.XE10公开课A 群号:58592705 QQ:513187410 朱建强 BAT-给文件右击菜单增加7-ZIP浏览功能 Reg给文件右击菜单增加7-ZIP浏览功能 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\用7-ZIP浏览(ZJQ)]"icon"="d:\\7ZIP.ico" [HKEY_CLASSES_ROOT\*\shell\用7

右击菜单简单实现

前几天项目验收的时候,提出"右击菜单"的需求.那么右击菜单有什么优点呢?为什么要做成这样?我想用一句:"提高用户体验度"就能够解除大家的疑惑吧.这样用户就能够依据自己的喜好,是点击固定button还是右击,无论通过那个渠道都能够达到目的,这样才干得到用户的青睐. 那么接下来就让我先从一个小的demo入手,体验一把吧! 一.准备工作 想要做的效果: 二.HTML代码 <span style="font-size:18px;"><!

QtableView内右击菜单判断位置是否合理

实践过程中出现的小bug: 当我右击view空白处,即我没选中有内容的行时,程序中断,因为我没做位置判断而直接获取行内容赋值给其他变量. QModelIndex temp = m->index(right_click.row(),1); 解决方案: 判断选中的行是否在我们model的行范围内. 如何获取model的行? ui.table_view->model()->rowCount(); 实际上我们不需要使用 right_click.row() < ui.table_view-&

自定义右击菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

24.QTableView

QTableView view(this); QStandardItemModel model(this); /*设置表头水平标题*/ model.setHorizontalHeaderItem(0,new QStandardItem("Name")); model.setHorizontalHeaderItem(1,new QStandardItem("Sex")); model.setHorizontalHeaderItem(2,new QStandardIte