QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列

技术QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列 QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列一、首先需要给QTableWidget安装事件
二、重新实现

QTableWidget添加表头菜单并可以通过表头菜单隐藏选中列

一、首先需要给QTableWidget安装事件

二、重新实现事件过滤器(QObject *obj,QEvent *ev)函数

三、下面是实现代码。h

#ifndef TABLEHEADERMENU_H

#定义TABLEHEADERMENU_H

#包含QtWidgets/QMainWindow

#包含' ui_tableheadermenu.h '

#包含QStringList

#包含QMenu

#包含量化事件

TableHeaderMenu :类公共QMainWindow

{

Q_OBJECT

公众号:

TableHeaderMenu(QWidget * parent=0);

~ TableHeaderMenu();

//设置表头菜单

void setHeaderMenu();

公共槽3360

//表头菜单响应槽函数

void slot visibleitems changed(bool已选中);

受保护:

//重写事件

bool eventFilter(QObject *obj,QEvent * ev);

私人:

ui : tableheadermenuclass ui;

//水平表头

QStringList horHeaderStr

//表头菜单

QMenu * m _ headerMenu

};

# endif///TABLEHEADERMENU _ H

卡片打印处理机(卡片打印处理器的缩写)

#包括" tableheadermenu.h "

#包含QContextMenuEvent

tableheadermenu :3360 tableheadermenu(QWidget *父级)

: QMainWindow(父)

{

ui。setupui(这个);

//设置列数

ui。TableWidget-SetColumnCount(5);

//表头

来自本地8位('的horheaderstrqstring :姓名)

QString:fromLocal8Bit('年龄)

QString:fromLocal8Bit('性别)

QString:fromLocal8Bit('兴趣)

QString:fromLocal8Bit('特长');

//设置表头

ui。table widget-sethorizontalheaderllables(Horheaderstr);

//安装水平表头事件

ui。table widget-horizontalHeader()-installEventFilter(this);

setHeaderMenu();

}

TableHeaderMenu : ~ TableHeaderMenu()

{

}

/*

实现表头菜单

*/

void tableheadermenu :3360 theadermunu()

{

m _ headerMenu=new QMenu(this);

qaaction * action name=新的qaaction(来自本地8位的qstring :('姓名),这个);

qaaction * action age=新的qaaction(来自本地8位的qstring :('年龄),这个);

QAction * actionSex=新的来自本地8位('的qaaction(qstring :性别),这个);

qaaction * action interset=新的qaaction(来自本地8位的qstring :('兴趣),这个);

QAction * actionSpeciality=新的来自本地8位('的qaaction(qstring :特长),这个);

操作名-设置对象名(qstring :3360 number(0));//0隐藏第一列

操作名称-SetCheckable(true);

actionName-setChecked(真);

actionAge-设置对象名称(qstring : number(1));//1隐藏第二列

actionAge-setCheckable(true);

actionAge-setChecked(真);

actionSex-设置对象名称(qstring :3360 number(2));//2隐藏第三列

actionSex-setCheckable(真);

actionSex-setChecked(真);

actionintermate-set对象名(qstring : number(3));//3隐藏第四列

action intermate-setCheckable(true);

actionintermate-set checked(真);

action specialty-设置对象名称(qstring :3360 number(4));//4隐藏第五列

action speciality-setCheckable(true);

actionspecialty-set已选中(真);

//连接菜单响应槽函数

connect(actionName,QAction:toggled,this,tableheadermenu :3360 lotusvisibleitems已更改);

connect(actionAge,QAction:toggled,this,tableheadermenu :3360 lotusvisibleitems已更改);

connect(actionSex,QAction:toggled,this,tableheadermenu :3360 lotsvisibleitems已更改);

connect(actioninter it,QAction:toggled,this,tableheadermenu :3360 lotusvisibleitems已更改);

connect(actionspecialty,QAction:toggled,this,tableheadermenu :3360 lotusvisibleitems已更改);

//添加菜单

m _ headerMenu-addAction(动作名称);

m _ headerMenu-addAction(actionAge);

m _ headerMenu-addAction(actionSex);

m _ headerMenu-addAction(action inter it);

m _ headerMenu-addAction(action specialty);

}

/*

表头菜单响应函数

*/

请参阅表格标题菜单3: slot visibility(bool选中)

{

qobject * obj=dynamic _ castqobject *(sender());

int n=obj物件名称()。屋顶();

ui。表小部件-设置列idden(n,已检查:

}

/*

范仲淹先生

*/

bool表格标题菜单3:事件过滤器(qoobject * obj,QEvent *ev)

{

if(obj==ui。表格小部件-水平标题()))

if(ev-type()==qevent 3:上下文菜单)>

qcontextmenuevent *菜单事件=static _ cast上下文菜单事件*(ev);

m_headerMenu跃现式选单(菜单事件-global pos());

返回真实的

}

其他

返回错误的

}

}

其他

返回事件过滤器(obj,ev);

}

}

手!手

#包括tableheadermenu.h

#包括qtwidgets/QA应用程序

int main(int argc、char *argv[])

{

qaapplication a(argc、argv);

表格标题菜单w;

w。show();

返回a . exec();

}

阿勃良

李佑(音译)页:1

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52106.html

(0)

相关推荐

  • 如何安装系统监控工具glances

    技术如何安装系统监控工具glances本篇文章为大家展示了如何安装系统监控工具glances,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。作为运维不仅要时时监控系统,还需要优雅的

    攻略 2021年12月9日
  • 九个点用四条线连起来,怎么用四条线把九个点连在一起

    技术九个点用四条线连起来,怎么用四条线把九个点连在一起3个答案九个点用四条线连起来:1、 可以一笔画出三条直线来把这九个点连起来。第一条直线从上排左端那个点的上缘开始,向右下方延伸,穿过上排中间的点的中心和上排右端的点的

    生活 2021年10月27日
  • ORACLE中出现ORA-28365错误怎么办

    技术ORACLE中出现ORA-28365错误怎么办这篇文章主要为大家展示了“ORACLE中出现ORA-28365错误怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ORA

    攻略 2021年11月20日
  • 信用卡注销,我想把信用卡注销了怎么操作

    技术信用卡注销,我想把信用卡注销了怎么操作首先信用卡注销,在注销信用卡前一定要确定你的信用卡账单情况, 要确保你的卡里无欠款。
    如果是有欠款,需要将这部分欠款还清,然后再进行下面的注销操作。 02
    在信用卡账单偿还完

    生活 2021年10月25日
  • Java的学习方法有哪些

    技术Java的学习方法有哪些这篇文章主要介绍“Java的学习方法有哪些”,在日常操作中,相信很多人在Java的学习方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的学习方法

    攻略 2021年11月6日
  • 视频服务器为什么推荐美国服务器

    技术视频服务器为什么推荐美国服务器美国视频服务器主要是指用于部署视频直播或者点播的流媒体SDK服务器。美国视频服务器一般采用独享的物理服务器。虚拟机不同,用户可以自行管理所有硬件资源,直接控制服务器的负载,不受于其他用户

    礼包 2021年11月1日