分析: 可以在ui界面上设置成一个字符串, 需要用到sprintf将唯一的字符串设置成" a\t b\n ccc\tdddd\n”形式 就是说就算他们的字符大小不一样,但是还是需要给他们分配一样的大小,这样才能对齐 注意如下char buffer[100];sprint_offset的位置以及library.c_str()
QString AboutDlg::GetFeatureConfig() { QString feature_config; int index = 0; char buffer[100]; std::map<FeatureConfig::FeatureName, FeatureConfigItem *> config_items = FeatureConfig::\ GetInstance()->config_items_; std::map<FeatureConfig::FeatureName, FeatureConfigItem *>::iterator iter = config_items.begin(); for(; iter != config_items.end(); ++iter) { bool value = iter->second->GetCofigFileEnable(); if(value) { int sprint_offset = 0; std::string library = iter->second->GetDisplayName(); \ sprint_offset += sprintf(buffer + sprint_offset, "%s", library.c_str()); index++; if ((index % 2) == 0) { sprint_offset += sprintf(buffer + sprint_offset, "\n"); } else { sprint_offset += sprintf(buffer + sprint_offset, "\t"); } feature_config += QString(buffer); } } return feature_config; }在某一处:
ui_->feature_config_->setText(feature_config); ui_->feature_config_->adjustSize();https://www.cnblogs.com/KeenLeung/archive/2012/04/13/2445054.html