2

我在两台 ubuntu 机器上使用 Qt,并且不时在它们之间复制源代码。这样做时我发现了一个非常烦人的问题,我无法弄清楚为什么会发生这种情况。

我正在使用表格小部件来显示一些数据,并希望拉伸水平标题以适应内容长度。为此,我使用以下行:

ui->tableWidget->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents);

这工作得很好。我有一些这样的代码行。但是,当我现在将源代码复制到另一台 PC 上进行处理时,我收到以下编译错误:

'class QHeaderView' 没有名为 'setResizeMode' 的成员

将“setResizeMode”重命名为“setSectionResizeMode”可以很好地解决这个问题,但如果我现在将源代码复制回第一台 PC,它会告诉我:

'class QHeaderView' 没有名为 'setSectionResizeMode' 的成员

...我必须再次将其重命名为“setResizeMode”,才能继续工作。我检查了两台 PC 上的 Qt 版本,它们都是基于"Qt 5.0.1 (32 bit)"的"Qt Creator 2.7.0 " 。系统也是最新的。唯一的区别是,我在英语系统语言中使用其中一个,在德语中使用另一个......但我不明白这会如何影响 Qt 的成员声明。oO

任何人都知道问题是什么?随着时间的推移,不断的重命名会变得很烦人。

4

1 回答 1

0

可能是 QT 标头版本不匹配

仔细QT_VERSION_STR检查QtCore/qglobal.h

为了快速检查你是否太懒#pragma message("QT version: " QT_VERSION_STR),在代码中添加一个让编译器在编译时输出它

于 2013-09-03T13:57:07.773 回答