1、添加控件
2、示例源码
//.h
private slots:
void OnClickHeader(int head);
void OnClickMenu(QAction *action);
//.cpp
void Textdemo::OnInitTableWidget()
{
ui.tableWidget->setColumnCount(2);//设置列数
ui.tableWidget->setRowCount(2);//设置行数数
//设置标头
QStringList headers;
headers.append("Describe");
headers.append("Data");
ui.tableWidget->setHorizontalHeaderLabels(headers);
//向指定行插入数据。需要注意的是,目前一共设置了2行2列,所以设置1行1列不会有问题;当插入的大于2行2列时,数据无法显示,必须先插入再进行设置数据信息
QTableWidgetItem * cubesHeaderItem1 = new QTableWidgetItem(tr("Cubes"));
cubesHeaderItem1->setIcon(QIcon(QPixmap("./Images/info.png")));
cubesHeaderItem1->setTextAlignment(Qt::AlignVCenter);// QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter
ui.tableWidget->setItem(1, 1, cubesHeaderItem1);
connect(ui.tableWidget->horizontalHeader(), &QHeaderView::sectionClicked, this, &Textdemo::OnClickHeader);// 添加 点击列表头 点击处理
}
void Textdemo::OnClickHeader(int head)
{
//初始化下拉菜单
QMenu* menu = new QMenu(this);
ui.actionmenu1 = new QAction(("menu1"), this);
ui.actionmenu2 = new QAction(("menu2"), this);
connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(OnClickMenu(QAction*)));
menu->addAction(ui.actionmenu1);
menu->addSeparator();
menu->addAction(ui.actionmenu2);
menu->move(cursor().pos());
menu->show();
}
void Textdemo::OnClickMenu(QAction *action)
{
int count = 0;
int iaction = 0;
if (action == ui.actionmenu1)
QMessageBox::information(this, "menu1", "Click menu1!");
if (action == ui.actionmenu2)
QMessageBox::information(this, "menu2", "Click menu2!");
}
3、运行效果