当前位置: 首页 > news >正文

苏州市住房和城乡建设局官方网站上海建设工程安全质量监督总站网站

苏州市住房和城乡建设局官方网站,上海建设工程安全质量监督总站网站,阿里域名价格,网站建设 东道网络今天晚上花点时间研究一下表格列的显隐问题(类似与excel的隐藏列功能),在网络上搜罗了一通资料,没现成的例子作为借鉴,只能自己研究编写了。现在将过程记录下来,以便日后翻阅。 首先声明:因为时…

今天晚上花点时间研究一下表格列的显隐问题(类似与excel的隐藏列功能),在网络上搜罗了一通资料,没现成的例子作为借鉴,只能自己研究编写了。现在将过程记录下来,以便日后翻阅。
首先声明:因为时间仓促,以下例子写的不是很规范,只是为了实现特定功能,如果哪位仁兄想要借鉴,只能自己完善优化以下了。示例运行后的如下图所示:
在这里插入图片描述
在这里插入图片描述

1.创建项目工程

1.创建TableLearn工程,只包括以下文件。
在这里插入图片描述
2.资源mainwindow.ui中拉入一个QTableWidget,瞎输入几行几列。其中类目1、类目2、类目3左右显隐节点,分别显隐对应的子集。
在这里插入图片描述

2.显隐按钮添加

1.在类目1、类目2、类目3位置创建3个按钮,分别用于显隐触发各自的子项。按钮存放到QButtonGroup中用于统一建议按钮的信号槽映射关系。

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QButtonGroup>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();void UpdateButtonPos(int buttonId);
private slots:void on_buttonClicked(int id);
private:Ui::MainWindow *ui;QButtonGroup *m_buttonGroup;
};
#endif // MAINWINDOW_H

2.按钮位置设置与信号槽绑定过程

MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);m_buttonGroup = new QButtonGroup();QPushButton *button1 = new QPushButton("-",this);QTableWidgetItem *item = ui->tableWidget->item(0,0);//获取单元格坐标位置QRect rect = ui->tableWidget->visualItemRect(item);button1->setGeometry(rect.x() + rect.width(),rect.y(),36,36);m_buttonGroup->addButton(button1,0);QPushButton *button3 = new QPushButton("-",this);item = ui->tableWidget->item(0,3);//获取单元格坐标位置rect = ui->tableWidget->visualItemRect(item);button3->setGeometry(rect.x() + rect.width(),rect.y(),36,36);m_buttonGroup->addButton(button3,3);QPushButton *button6 = new QPushButton("-",this);item = ui->tableWidget->item(0,6);//获取单元格坐标位置rect = ui->tableWidget->visualItemRect(item);button6->setGeometry(rect.x() + rect.width(),rect.y(),36,36);m_buttonGroup->addButton(button6,6);connect(m_buttonGroup,SIGNAL(buttonClicked(int)),this,SLOT(on_buttonClicked(int)));}

3. 按钮点击处理

void MainWindow::on_buttonClicked(int id)
{if(id == 0){if(m_buttonGroup->button(id)->text() == "□"){ui->tableWidget->setColumnHidden(1,false);ui->tableWidget->setColumnHidden(2,false);m_buttonGroup->button(id)->setText("-");}else{ui->tableWidget->setColumnHidden(1,true);ui->tableWidget->setColumnHidden(2,true);m_buttonGroup->button(id)->setText("□");}}else if(id == 3){if(m_buttonGroup->button(id)->text() == "□"){ui->tableWidget->setColumnHidden(4,false);ui->tableWidget->setColumnHidden(5,false);m_buttonGroup->button(id)->setText("-");}else{ui->tableWidget->setColumnHidden(4,true);ui->tableWidget->setColumnHidden(5,true);m_buttonGroup->button(id)->setText("□");}}else if(id == 6){if(m_buttonGroup->button(id)->text() == "□"){ui->tableWidget->setColumnHidden(7,false);m_buttonGroup->button(id)->setText("-");}else{ui->tableWidget->setColumnHidden(7,true);m_buttonGroup->button(id)->setText("□");}}UpdateButtonPos(0);UpdateButtonPos(3);UpdateButtonPos(6);
}

4.按钮位置更新

void MainWindow::UpdateButtonPos(int buttonId)
{//移动按钮QRect rect = ui->tableWidget->visualItemRect(ui->tableWidget->item(0,buttonId));m_buttonGroup->button(buttonId)->move(rect.x()+rect.width(),rect.y());
}
http://www.dtcms.com/a/506070.html

相关文章:

  • 青岛正规网站设计公司wordpress标题转英文
  • 如何修改wordpress的字体广州网站快速排名优化
  • 濮阳家电网站建设室内设计网站推荐知乎
  • 有哪些国外网站做的好的效果图人才网招聘信息
  • 网站建设投标ppt模板南昌做网站市场报价
  • 行业网站搭建玉田县建设工程招标网站
  • 北京公司网站建设报价衡阳seo
  • 建个网站需要投资多少wordpress 首页文章
  • 无烟锅网站规划与建设o2o平台有哪些可以入驻
  • 国内免费的短视频素材网站公众号开发者权限怎么开
  • 网页设计与网站建设实例教程答案乐清市龙翔网络工程公司
  • 常州微元宝网站建设云服务器是否可以做多个网站
  • 网站设计总结与心得体会公司内部网站怎么做
  • 周口网站建设公司济南网站建设cnwenhui
  • 如何在各个购物网站之间做差价设计网站官网狗
  • 网站建设职位要求国内免费域名申请
  • js模板网站广州有建网站的公司吗
  • 个人网站效果计算机网络技专业术网站开发
  • 1免费建站网站wordpress管理员密码被改
  • dw软件做网站帮忙做任务网站
  • 网站建设参考文献外文批量替换wordpress文章中的文字
  • 郑州区块链数字钱包网站开发周期怎么自己做网站卡扣
  • 苏州新区网站建设做导航网站不侵权吗
  • 遨游建站大连建设网网址
  • 网站的资讯内容学网站建设专业前景
  • 263网站建设怎么样网站建设以什么盈利
  • 滨海网站建设发免费广告电话号码
  • 三网合一网站建设合同网站开发注意问题
  • discuz做影视网站网络系统开发
  • 太原建站模板网站seo优化标题 关键词