本文整理汇总了C++中QMultiMap::keys方法的典型用法代码示例。如果您正苦于以下问题:C++ QMultiMap::keys方法的具体用法?C++ QMultiMap::keys怎么用?C++ QMultiMap::keys使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QMultiMap
的用法示例。
在下文中一共展示了QMultiMap::keys方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ranking
QStringList Statistics::ranking(QString key){
QMultiMap<quint64, QString> *map = this->_rankings.value(key);
QStringList rankedList;
QList<quint64> keys = map->keys();
for(int i = keys.length()-1; i >= 0;--i){
rankedList.append(map->value(keys.at(i)));
}
return rankedList;
}
示例2: testCodeParserGTest
void AutoTestUnitTests::testCodeParserGTest()
{
if (qgetenv("GOOGLETEST_DIR").isEmpty())
QSKIP("This test needs googletest - set GOOGLETEST_DIR (point to googletest repository)");
QFETCH(QString, projectFilePath);
CppTools::Tests::ProjectOpenerAndCloser projectManager;
CppTools::ProjectInfo projectInfo = projectManager.open(projectFilePath, true);
QVERIFY(projectInfo.isValid());
QSignalSpy parserSpy(m_model->parser(), SIGNAL(parsingFinished()));
QSignalSpy modelUpdateSpy(m_model, SIGNAL(sweepingDone()));
QVERIFY(parserSpy.wait(20000));
QVERIFY(modelUpdateSpy.wait());
QCOMPARE(m_model->gtestNamesCount(), 7);
QMultiMap<QString, int> expectedNamesAndSets;
expectedNamesAndSets.insert(QStringLiteral("FactorialTest"), 3);
expectedNamesAndSets.insert(QStringLiteral("FactorialTest_Iterative"), 2);
expectedNamesAndSets.insert(QStringLiteral("Sum"), 2);
expectedNamesAndSets.insert(QStringLiteral("QueueTest"), 2);
expectedNamesAndSets.insert(QStringLiteral("DummyTest"), 1); // used as parameterized test
expectedNamesAndSets.insert(QStringLiteral("DummyTest"), 1); // used as 'normal' test
expectedNamesAndSets.insert(QStringLiteral("NamespaceTest"), 1);
QMultiMap<QString, int> foundNamesAndSets = m_model->gtestNamesAndSets();
QCOMPARE(expectedNamesAndSets.size(), foundNamesAndSets.size());
foreach (const QString &name, expectedNamesAndSets.keys())
QCOMPARE(expectedNamesAndSets.values(name), foundNamesAndSets.values(name));
// check also that no Qt related tests have been found
QCOMPARE(m_model->autoTestsCount(), 0);
QCOMPARE(m_model->namedQuickTestsCount(), 0);
QCOMPARE(m_model->unnamedQuickTestsCount(), 0);
QCOMPARE(m_model->dataTagsCount(), 0);
}
示例3: testCodeParserGTest
void AutoTestUnitTests::testCodeParserGTest()
{
if (qgetenv("GOOGLETEST_DIR").isEmpty())
QSKIP("This test needs googletest - set GOOGLETEST_DIR (point to googletest repository)");
NavigationWidget *navigation = NavigationWidget::instance();
navigation->activateSubWidget(Constants::AUTOTEST_ID);
CppTools::Tests::ProjectOpenerAndCloser projectManager;
CppTools::ProjectInfo projectInfo = projectManager.open(
QString(m_tmpDir->path() + QLatin1String("/simple_gt/simple_gt.pro")), true);
QVERIFY(projectInfo.isValid());
QSignalSpy parserSpy(m_model->parser(), SIGNAL(parsingFinished()));
QVERIFY(parserSpy.wait(20000));
QCOMPARE(m_model->gtestNamesCount(), 6);
QMultiMap<QString, int> expectedNamesAndSets;
expectedNamesAndSets.insert(QStringLiteral("FactorialTest"), 3);
expectedNamesAndSets.insert(QStringLiteral("FactorialTest_Iterative"), 2);
expectedNamesAndSets.insert(QStringLiteral("Sum"), 2);
expectedNamesAndSets.insert(QStringLiteral("QueueTest"), 2);
expectedNamesAndSets.insert(QStringLiteral("DummyTest"), 1); // used as parameterized test
expectedNamesAndSets.insert(QStringLiteral("DummyTest"), 1); // used as 'normal' test
QMultiMap<QString, int> foundNamesAndSets = m_model->gtestNamesAndSets();
QCOMPARE(expectedNamesAndSets.size(), foundNamesAndSets.size());
foreach (const QString &name, expectedNamesAndSets.keys())
QCOMPARE(expectedNamesAndSets.values(name), foundNamesAndSets.values(name));
// check also that no Qt related tests have been found
QCOMPARE(m_model->autoTestsCount(), 0);
QCOMPARE(m_model->namedQuickTestsCount(), 0);
QCOMPARE(m_model->unnamedQuickTestsCount(), 0);
QCOMPARE(m_model->dataTagsCount(), 0);
}
示例4: locker
//.........这里部分代码省略.........
groups.insert(genes, GBFeatureKey_5_UTR);
QString signls = QObject::tr("Signals");
groups.insert(signls, GBFeatureKey_attenuator);
groups.insert(signls, GBFeatureKey_CAAT_signal);
groups.insert(signls, GBFeatureKey_GC_signal);
groups.insert(signls, GBFeatureKey_enhancer);
groups.insert(signls, GBFeatureKey_mat_peptide);
groups.insert(signls, GBFeatureKey_misc_signal);
groups.insert(signls, GBFeatureKey_oriT);
groups.insert(signls, GBFeatureKey_rep_origin);
groups.insert(signls, GBFeatureKey_polyA_site);
groups.insert(signls, GBFeatureKey_polyA_signal);
groups.insert(signls, GBFeatureKey_promoter);
groups.insert(signls, GBFeatureKey_RBS);
groups.insert(signls, GBFeatureKey_sig_peptide);
groups.insert(signls, GBFeatureKey_terminator);
groups.insert(signls, GBFeatureKey_transit_peptide);
groups.insert(signls, GBFeatureKey_TATA_signal);
groups.insert(signls, GBFeatureKey__35_signal);
groups.insert(signls, GBFeatureKey__10_signal);
groups.insert(signls, GBFeatureKey_regulatory);
QString binding = QObject::tr("Binding");
groups.insert(binding, GBFeatureKey_misc_binding);
groups.insert(binding, GBFeatureKey_primer_bind);
groups.insert(binding, GBFeatureKey_protein_bind);
groups.insert(binding, GBFeatureKey_bond);
QString variation = QObject::tr("Variation");
groups.insert(variation, GBFeatureKey_conflict);
groups.insert(variation, GBFeatureKey_misc_difference);
groups.insert(variation, GBFeatureKey_modified_base);
groups.insert(variation, GBFeatureKey_old_sequence);
groups.insert(variation, GBFeatureKey_STS);
groups.insert(variation, GBFeatureKey_unsure);
groups.insert(variation, GBFeatureKey_variation);
QString repeats = QObject::tr("Repeats");
groups.insert(repeats, GBFeatureKey_LTR);
groups.insert(repeats, GBFeatureKey_repeat_region);
groups.insert(repeats, GBFeatureKey_repeat_unit);
groups.insert(repeats, GBFeatureKey_satellite);
groups.insert(repeats, GBFeatureKey_transposon); //TODO: recheck grouping
QString rna = QObject::tr("RNA");
groups.insert(rna, GBFeatureKey_ncRNA);
groups.insert(rna, GBFeatureKey_misc_RNA);
groups.insert(rna, GBFeatureKey_mRNA);
groups.insert(rna, GBFeatureKey_rRNA);
groups.insert(rna, GBFeatureKey_scRNA);
groups.insert(rna, GBFeatureKey_snRNA);
groups.insert(rna, GBFeatureKey_tRNA);
groups.insert(rna, GBFeatureKey_tmRNA);
QString misc = QObject::tr("Misc");
groups.insert(misc, GBFeatureKey_assembly_gap);
groups.insert(misc, GBFeatureKey_centromere);
groups.insert(misc, GBFeatureKey_D_loop);
groups.insert(misc, GBFeatureKey_gap);
groups.insert(misc, GBFeatureKey_iDNA);
groups.insert(misc, GBFeatureKey_misc_binding);
groups.insert(misc, GBFeatureKey_misc_feature);
groups.insert(misc, GBFeatureKey_misc_recomb);
groups.insert(misc, GBFeatureKey_misc_structure);
groups.insert(misc, GBFeatureKey_mobile_element);
groups.insert(misc, GBFeatureKey_operon);
groups.insert(misc, GBFeatureKey_primer); //TODO: recheck grouping
groups.insert(misc, GBFeatureKey_source);
groups.insert(misc, GBFeatureKey_stem_loop);
groups.insert(misc, GBFeatureKey_telomere);
groups.insert(misc, GBFeatureKey_Protein);
groups.insert(misc, GBFeatureKey_Region);
groups.insert(misc, GBFeatureKey_Site);
QString spans = QObject::tr("Spans");
groups.insert(spans, GBFeatureKey_C_region);
groups.insert(spans, GBFeatureKey_D_segment);
groups.insert(spans, GBFeatureKey_J_region);
groups.insert(spans, GBFeatureKey_J_segment);
groups.insert(spans, GBFeatureKey_N_region);
groups.insert(spans, GBFeatureKey_S_region);
groups.insert(spans, GBFeatureKey_V_region);
groups.insert(spans, GBFeatureKey_V_segment);
#ifdef _DEBUG
//check that no feature lost
QVector<bool> featureInGroup(GBFeatureKey_NUM_KEYS, false);
foreach(const QString& groupName, groups.keys()) {
QList<GBFeatureKey> values = groups.values(groupName);
foreach (GBFeatureKey k, values) {
featureInGroup[k] = true;
}
}
for (int i=0; i<GBFeatureKey_NUM_KEYS; i++) {
GBFeatureKey fk = GBFeatureKey(i);
assert(featureInGroup[fk]);
}
#endif
}
示例5: layer
QList<QgsOgrDbLayerInfo *> QgsOgrLayerItem::subLayers( const QString &path, const QString &driver )
{
QList<QgsOgrDbLayerInfo *> children;
// Vector layers
const QgsVectorLayer::LayerOptions layerOptions { QgsProject::instance()->transformContext() };
QgsVectorLayer layer( path, QStringLiteral( "ogr_tmp" ), QStringLiteral( "ogr" ), layerOptions );
if ( ! layer.isValid( ) )
{
QgsDebugMsgLevel( QStringLiteral( "Layer is not a valid %1 Vector layer %2" ).arg( path ), 3 );
}
else
{
// Collect mixed-geom layers
QMultiMap<int, QStringList> subLayersMap;
QgsOgrProvider *ogrProvider = qobject_cast<QgsOgrProvider *>( layer.dataProvider() );
const QStringList subLayersList( ogrProvider->subLayersWithoutFeatureCount( ) );
QMap< QString, int > mapLayerNameToCount;
bool uniqueNames = true;
int prevIdx = -1;
for ( const QString &descriptor : subLayersList )
{
QStringList pieces = descriptor.split( QgsDataProvider::SUBLAYER_SEPARATOR );
int idx = pieces[0].toInt();
subLayersMap.insert( idx, pieces );
if ( pieces.count() >= 4 && idx != prevIdx )
{
QString layerName = pieces[1];
int count = ++mapLayerNameToCount[layerName];
if ( count > 1 || layerName.isEmpty() )
uniqueNames = false;
}
prevIdx = idx;
}
prevIdx = -1;
const auto subLayerKeys = subLayersMap.keys( );
for ( const int &idx : subLayerKeys )
{
if ( idx == prevIdx )
{
continue;
}
prevIdx = idx;
QList<QStringList> values = subLayersMap.values( idx );
for ( int i = 0; i < values.size(); ++i )
{
QStringList pieces = values.at( i );
QString layerId = pieces[0];
QString name = pieces[1];
// QString featuresCount = pieces[2]; // Not used
QString geometryType = pieces[3];
QString geometryColumn = pieces[4];
QgsLayerItem::LayerType layerType;
layerType = QgsOgrLayerItem::layerTypeFromDb( geometryType );
// example URI for mixed-geoms geoms: '/path/gdal_sample_v1.2_no_extensions.gpkg|layerid=7|geometrytype=Point'
// example URI for mixed-geoms attr table: '/path/gdal_sample_v1.2_no_extensions.gpkg|layername=MyLayer|layerid=7'
// example URI for single geoms: '/path/gdal_sample_v1.2_no_extensions.gpkg|layerid=6'
QString uri;
if ( layerType != QgsLayerItem::LayerType::NoType )
{
if ( geometryType.contains( QStringLiteral( "Collection" ), Qt::CaseInsensitive ) )
{
QgsDebugMsgLevel( QStringLiteral( "Layer %1 is a geometry collection: skipping %2" ).arg( name, path ), 3 );
}
else
{
if ( uniqueNames )
uri = QStringLiteral( "%1|layername=%2" ).arg( path, name );
else
uri = QStringLiteral( "%1|layerid=%2" ).arg( path, layerId );
if ( values.size() > 1 )
{
uri += QStringLiteral( "|geometrytype=" ) + geometryType;
}
QgsDebugMsgLevel( QStringLiteral( "Adding %1 Vector item %2 %3 %4" ).arg( driver, name, uri, geometryType ), 3 );
children.append( new QgsOgrDbLayerInfo( path, uri, name, geometryColumn, geometryType, layerType ) );
}
}
else
{
QgsDebugMsgLevel( QStringLiteral( "Layer type is not a supported %1 Vector layer %2" ).arg( driver, path ), 3 );
uri = QStringLiteral( "%1|layerid=%2|layername=%3" ).arg( path, layerId, name );
children.append( new QgsOgrDbLayerInfo( path, uri, name, geometryColumn, geometryType, QgsLayerItem::LayerType::TableLayer ) );
}
QgsDebugMsgLevel( QStringLiteral( "Adding %1 Vector item %2 %3 %4" ).arg( driver, name, uri, geometryType ), 3 );
}
}
}
// Raster layers
QgsRasterLayer::LayerOptions options;
options.loadDefaultStyle = false;
QgsRasterLayer rlayer( path, QStringLiteral( "gdal_tmp" ), QStringLiteral( "gdal" ), options );
if ( !rlayer.dataProvider()->subLayers( ).empty() )
{
const QStringList layers( rlayer.dataProvider()->subLayers( ) );
for ( const QString &uri : layers )
{
// Split on ':' since this is what comes out from the provider
QStringList pieces = uri.split( ':' );
//.........这里部分代码省略.........
示例6: renderLayerStatic
void QgsMapRendererParallelJob::renderLayerStatic( LayerRenderJob& job )
{
if ( job.context.renderingStopped() )
return;
if ( job.cached )
return;
#ifdef QGISDEBUG
static QSet<QString> running;
static QMultiMap<int, QString> elapsed;
QSettings settings;
bool log = settings.value( "/Map/logCanvasRefreshEvent", false ).toBool();
QTime t;
t.start();
QgsDebugMsg( QString( "job %1 start" ).arg( reinterpret_cast< ulong >( &job ), 0, 16 ) );
if ( log )
{
QgsMessageLog::logMessage( tr( "Layer %1 job started" ).arg( job.layerId ), tr( "Rendering" ) );
Q_ASSERT( !running.contains( job.layerId ) );
running << job.layerId;
}
#endif
try
{
job.renderer->render();
}
catch ( QgsException & e )
{
QgsDebugMsg( "Caught unhandled QgsException: " + e.what() );
}
catch ( std::exception & e )
{
QgsDebugMsg( "Caught unhandled std::exception: " + QString::fromAscii( e.what() ) );
}
catch ( ... )
{
QgsDebugMsg( "Caught unhandled unknown exception" );
}
#ifdef QGISDEBUG
int tt = t.elapsed();
QgsDebugMsg( QString( "job %1 end [%2 ms]" ).arg( reinterpret_cast< ulong >( &job ), 0, 16 ).arg( tt ) );
if ( log )
{
running.remove( job.layerId );
elapsed.insert( tt, job.layerId );
QgsMessageLog::logMessage( tr( "Layer %1 job ended (%2 ms; still running:%3)" ).arg( job.layerId ).arg( tt ).arg( QStringList( running.values() ).join( ", " ) ), tr( "Rendering" ) );
if ( running.isEmpty() )
{
QList<int> tt( elapsed.keys() );
qSort( tt.begin(), tt.end(), qGreater<int>() );
Q_FOREACH ( int t, tt )
{
QgsMessageLog::logMessage( tr( "%1 ms: %2" ).arg( t ).arg( QStringList( elapsed.values( t ) ).join( ", " ) ), tr( "Rendering" ) );
}
QgsMessageLog::logMessage( "---", tr( "Rendering" ) );
elapsed.clear();
}
示例7: preferredPlugin
void tst_QWebPluginDatabase::preferredPlugin()
{
QMultiMap<QString, QWebPluginInfo> pluginsMap;
QWebPluginDatabase* database = QWebSettings::pluginDatabase();
QList<QWebPluginInfo> plugins = database->plugins();
for (int i = 0; i < plugins.count(); ++i) {
QWebPluginInfo plugin = plugins.at(i);
QList<MimeType> mimeTypes = plugin.mimeTypes();
for (int j = 0; j < mimeTypes.count(); ++j) {
QString mimeType = mimeTypes.at(j).name;
pluginsMap.insert(mimeType, plugin);
}
}
QMultiMap<QString, QWebPluginInfo>::iterator it = pluginsMap.begin();
while (it != pluginsMap.end()) {
QString mimeType = it.key();
if (pluginsMap.count(mimeType) > 1) {
QList<QWebPluginInfo> pluginsForMimeType = pluginsMap.values(mimeType);
QWebPluginInfo plugin = database->pluginForMimeType(mimeType);
QVERIFY(plugin.supportsMimeType(mimeType));
pluginsForMimeType.removeAll(plugin);
for (int i = 0; i < pluginsForMimeType.count(); ++i) {
QWebPluginInfo anotherPlugin = pluginsForMimeType.at(i);
QVERIFY(plugin.supportsMimeType(mimeType));
QVERIFY(plugin != anotherPlugin);
QCOMPARE(database->pluginForMimeType(mimeType), plugin);
database->setPreferredPluginForMimeType(mimeType, anotherPlugin);
QCOMPARE(database->pluginForMimeType(mimeType), anotherPlugin);
anotherPlugin.setEnabled(false);
QCOMPARE(database->pluginForMimeType(mimeType), plugin);
anotherPlugin.setEnabled(true);
QCOMPARE(database->pluginForMimeType(mimeType), anotherPlugin);
database->setSearchPaths(database->searchPaths());
QCOMPARE(database->pluginForMimeType(mimeType), anotherPlugin);
database->setPreferredPluginForMimeType(mimeType, QWebPluginInfo());
QCOMPARE(database->pluginForMimeType(mimeType), plugin);
}
} else {
QWebPluginInfo plugin = database->pluginForMimeType(mimeType);
QCOMPARE(pluginsMap.value(mimeType), plugin);
database->setPreferredPluginForMimeType(mimeType, plugin);
QCOMPARE(database->pluginForMimeType(mimeType), plugin);
plugin.setEnabled(false);
QCOMPARE(database->pluginForMimeType(mimeType), QWebPluginInfo());
plugin.setEnabled(true);
database->setPreferredPluginForMimeType(mimeType, QWebPluginInfo());
QCOMPARE(database->pluginForMimeType(mimeType), plugin);
}
++it;
}
if (pluginsMap.keys().count() >= 2) {
QStringList mimeTypes = pluginsMap.uniqueKeys();
QString mimeType1 = mimeTypes.at(0);
QString mimeType2 = mimeTypes.at(1);
QWebPluginInfo plugin1 = database->pluginForMimeType(mimeType1);
QWebPluginInfo plugin2 = database->pluginForMimeType(mimeType2);
int i = 2;
while (plugin2.supportsMimeType(mimeType1)
&& !mimeType2.isEmpty()
&& i < mimeTypes.count()) {
mimeType2 = mimeTypes.at(i);
plugin2 = database->pluginForMimeType(mimeType2);
++i;
}
plugin1 = database->pluginForMimeType(mimeType1);
QVERIFY(plugin1.supportsMimeType(mimeType1));
QVERIFY(!plugin1.isNull());
plugin2 = database->pluginForMimeType(mimeType2);
QVERIFY(plugin2.supportsMimeType(mimeType2));
QVERIFY(!plugin2.isNull());
database->setPreferredPluginForMimeType(mimeType2, plugin1);
QVERIFY(!plugin1.supportsMimeType(mimeType2));
QCOMPARE(database->pluginForMimeType(mimeType2), plugin2);
database->setPreferredPluginForMimeType(mimeType1, plugin1);
QVERIFY(!plugin2.supportsMimeType(mimeType1));
QCOMPARE(database->pluginForMimeType(mimeType2), plugin2);
}
}