我在两台ubuntu机器上使用Qt,并且不时在它们之间复制源代码。这样做时我发现了一个非常恼人的问题,我无法弄清楚为什么会发生这种情况。
我使用表格小部件来显示一些数据,并希望拉伸水平标题以适应内容长度。为此,我使用以下行:
ui->tableWidget->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents);
这很好用。 我有一些这样的代码。 但是,当我现在将我的源代码复制到另一台PC上工作时,我得到以下编译错误:
'class QHeaderView'没有名为'setResizeMode'的成员
将'setResizeMode'重命名为'setSectionResizeMode'可以很好地解决该问题,但如果我现在将源代码复制回第一台PC,它会告诉我:
'class QHeaderView'没有名为'setSectionResizeMode'的成员
...我必须再次将其重命名为'setResizeMode',才能继续工作。 我检查了两台PC上的Qt版本,它们都是“Qt Creator 2.7.0”,基于“Qt 5.0.1(32位)”。 系统也是最新的。 唯一的区别是,我使用英语系统语言中的一个,另一个用德语...但我不知道这会如何影响Qt的成员声明。 o.O
有谁知道问题是什么? 随着时间的推移,不断重命名会变得烦人。
答案 0 :(得分:0)
可能是QT标题版本不匹配
仔细检查QT_VERSION_STR
QtCore/qglobal.h
快速检查一下你是否过于懒惰在代码中添加#pragma message("QT version: " QT_VERSION_STR)
以便编译器在编译时输出