编程此类事物的最佳方式"写代码" :: Qt

时间:2014-03-24 20:25:31

标签: c++ qt

你们可以帮助我解决这些问题,并提出你的意见。

1-让我说我想要创建一个可以计算“任何窗口”的窗口,如果我在构造函数中编写大部分内容而不是为我创建一个函数然后在缩写器中调用它就可以了。 ?或哪种方法更好。

2-让我说我有一个数组或qvector或任何东西,可能有+30个元素,这些元素意味着不变可能就像持有主题名称“我想插入名称而非用户”,是否认为不好像这样初始化它:

s[0]=".."
s[1]="...."

因为我不能使用循环,因为名称会改变。

2 个答案:

答案 0 :(得分:2)

  

1-让我们说我想要创建一个可能会计算某些内容的窗口"任何窗口"如果我在缩窄器中写下大部分内容而不是为我创建一个函数然后在缩窄器中调用它,这样可以吗?或哪种方法更好。

我会告诉你任何函数应该很小,而不仅仅是构造函数。 This可能有帮助。

  

2-让我说我有一个数组或qvector或任何东西,可能有+30个元素,这些元素意味着不变可能就像持有主题名称"我想插入不是用户的名字" ,这样认为它是不好的:

     

S [0] =" .." S [1] =" ...." 。 。

     

因为我不能使用循环,因为名称会改变。

考虑在外部配置文件中指定这些值,然后在应用程序启动时加载(即解析)。也就是说,而不是像

那样有大量的陈述
s[0] = "john doe"
s[1] = "jane doe
// ...

将这些名称放在一个文件中,比如names.cfg,然后像这样填写QVector

std::ifstream in{"names.cfg"};

QVector<std::string> names;
std::string current_name;

while (std::getline(in, current_name))
    names.push_back(current_name);

免责声明:我不是Qt专家,但我认为使用QVector是有效的。

答案 1 :(得分:1)

1 - 是的,在constr * u * ctor中完成所有工作是不好的做法。构造函数用于初始化对象,而不是保存整个应用程序。

2 - 有关初始化QVector的信息,请参阅:https://qt-project.org/forums/viewthread/32927 ...也应该适用于QString,而不仅仅是int