gpt4 book ai didi

c++ - 如何处理列宽调整事件

转载 作者:行者123 更新时间:2023-11-28 02:39:56 25 4
gpt4 key购买 nike

我需要在 QTableWidget 中调整列宽大小。

我该怎么做?

--

我谈论的是当光标位于标题部分之间的边框下方、鼠标左键按下且鼠标正在移动时的事件。

最佳答案

尝试将 ui->tableWidget->verticalHeader()(它返回 QHeaderView)sectionResized() 信号连接到某个插槽。

工作示例:

新的信号槽语法 + lambda 表达式

connect(ui->tableWidget->horizontalHeader(),&QHeaderView::sectionResized,[=]( int logicalIndex, int oldSize, int newSize) {//with lambda
qDebug() << "works" << logicalIndex << oldSize << newSize;
});

输出:

works 0 115 116 
works 0 116 115
works 1 100 101
works 1 101 102

同时将 CONFIG += c++11 添加到 pro 文件中。

旧语法示例:

在标题中:

private slots:
void clicked(int, int, int);

在构造函数中:

connect(ui->tableWidget->horizontalHeader(),SIGNAL(sectionResized(int,int,int)),this, SLOT(clicked(int,int,int)));

插槽:

void MainWindow::clicked(int logicalIndex, int oldSize, int newSize)
{
qDebug() << "works" << logicalIndex << oldSize << newSize;
}

输出:

works 0 106 107 
works 0 107 108
works 1 100 101
works 1 101 102
works 1 102 103

选择最适合你的,但请注意新语法有:

  • 编译时检查信号和槽的存在,类型,或者缺少 Q_OBJECT。
  • 参数可以由 typedef 或具有不同的命名空间说明符,并且有效。
  • 如果存在隐式,则可以自动转换类型转换(例如从 QString 到 QVariant)
  • 可以连接到QObject的任何成员函数,不仅插槽。

查看更多信息:http://qt-project.org/wiki/New_Signal_Slot_Syntax

关于c++ - 如何处理列宽调整事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26325658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com