提升访问境外网站速度,建设银行官方网站购房贷款利率,北京旅游型网站建设,如何进行营销型企业网站的优化今天晚上花点时间研究一下表格列的显隐问题#xff08;类似与excel的隐藏列功能#xff09;#xff0c;在网络上搜罗了一通资料#xff0c;没现成的例子作为借鉴#xff0c;只能自己研究编写了。现在将过程记录下来#xff0c;以便日后翻阅。 首先声明#xff1a;因为时…今天晚上花点时间研究一下表格列的显隐问题类似与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 QButtonGroupnamespace 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_H2.按钮位置设置与信号槽绑定过程
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());
}