/****************************************************************************** * QSkinny - Copyright (C) 2016 Uwe Rathmann * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include #include #include #include #include #include #include #include class ListBox : public QskSimpleListBox { public: ListBox() { setMargins( QMarginsF( 15, 10, 10, 10 ) ); setAlternatingRowColors( true ); // increasing the padding of each row: usually the job of the skin ! setPaddingHint( Cell, QMargins( 10, 20, 10, 20 ) ); populate(); setSelectedRow( 5 ); } private: void populate() { const int count = 10000; const QString format( "Row %1: The quick brown fox jumps over the lazy dog" ); QStringList entries; entries.reserve( count ); for ( int i = 0; i < count; i++ ) { entries += format.arg( i + 1 ); } // we know, that the last entry is the longest one and // can prevent the list box from having to find it out // the expensive way. const qreal maxWidth = qskHorizontalAdvance( effectiveFont( Cell ), entries.last() ); setColumnWidthHint( 0, maxWidth ); append( entries ); } }; int main( int argc, char* argv[] ) { #ifdef ITEM_STATISTICS QskObjectCounter counter( true ); #endif QGuiApplication app( argc, argv ); SkinnyShortcut::enable( SkinnyShortcut::AllShortcuts ); QskWindow window; window.setColor( "Silver" ); window.addItem( new ListBox() ); window.resize( 400, 600 ); window.show(); return app.exec(); }