I am trying to create a toolbar similar to the one seem in Reditr with horizontal scrolling buttons (it's the only app I can think of offhand that has a toolbar like what I'm trying to make, though I know I've seen it plenty other places). I am using Qt 4.8
I want my QMainWindow app to have a horizontally scrolling toolbar. I would like to have a button on the left side of the QToolbar with "<<" and a button on the right side with ">>". Each button would scroll the toolbar's items in the appropriate direction.
My initial attempt looks like:
	
	- void MainWindow::createToolbar() 
- { 
-   
-   
-   
- 	// add a bunch of items to the toolbar for testing purposes 
- 	for (int i=0; i < 50; i++) 
- 	{ 
-                 // settings.png is just a 24x24 icon that shows up as expected 
- 		container -- >addAction (QIcon(":/icons/settings.png")- ,  "Test")- ; 
- 		container->addSeparator(); 
- 	} 
-   
- 	scrollArea->addScrollBarWidget(container, Qt::AlignCenter); 
-   
- 	layout->addWidget(leftBtn); 
- 	layout->addWidget(scrollArea); 
- 	layout->addWidget(rightBtn); 
-   
- 	frame->setLayout(layout); 
-   
- 	mainToolBar->addWidget(frame); 
- 	this->addToolBar(mainToolBar); 
- } 
        void MainWindow::createToolbar()
{
	QFrame* frame = new QFrame(this);
	frame->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
	QPushButton* leftBtn = new QPushButton("<<", frame);
	QPushButton* rightBtn = new QPushButton(">>", frame);
	QScrollArea* scrollArea = new QScrollArea(this);
	QToolBar* container = new QToolBar(this);
	// add a bunch of items to the toolbar for testing purposes
	for (int i=0; i < 50; i++)
	{
                // settings.png is just a 24x24 icon that shows up as expected
		container->addAction(QIcon(":/icons/settings.png"), "Test");
		container->addSeparator();
	}
	scrollArea->addScrollBarWidget(container, Qt::AlignCenter);
	QHBoxLayout* layout = new QHBoxLayout(this);
	layout->addWidget(leftBtn);
	layout->addWidget(scrollArea);
	layout->addWidget(rightBtn);
	frame->setLayout(layout);
	QToolBar* mainToolBar = new QToolBar(tr("mainToolBar"));
	mainToolBar->addWidget(frame);
	this->addToolBar(mainToolBar);
}
To copy to clipboard, switch view to plain text mode 
  
The idea is to put the toolbar into a QScrollArea that I put inside QHBoxLayout along with the QPushButton objects I want to control the scrolling. Then I put that into a QFrame that I can then add to the QMainWindow's toolbar. However, when I try this nothing shows up in the frame (scrollarea.png attached).
If I change 
	
	- layout->addWidget(leftBtn); 
- 	layout->addWidget(scrollArea); 
- 	layout->addWidget(rightBtn); 
        layout->addWidget(leftBtn);
	layout->addWidget(scrollArea);
	layout->addWidget(rightBtn);
To copy to clipboard, switch view to plain text mode 
  
To
	
	- layout->addWidget(leftBtn); 
- 	layout->addWidget(container); // add the QToolBar to the layout instead of the QScrollArea object 
- 	layout->addWidget(rightBtn); 
        layout->addWidget(leftBtn);
	layout->addWidget(container); // add the QToolBar to the layout instead of the QScrollArea object
	layout->addWidget(rightBtn);
To copy to clipboard, switch view to plain text mode 
  
Then I can see the items in the QToolBar, except that the I get QToolBar's push-button on the right to show all the hidden items (container.png attached).
Right now I am not concerned with the functionality of << and >> buttons, I am mostly interested in any help I can get trying to get things to look how I want. Does anyone have any suggestions?
Added after 1 9 minutes:
Doh!
If I use
	
	- scrollArea->setWidget(container); 
        scrollArea->setWidget(container);
To copy to clipboard, switch view to plain text mode 
  
I get the results I'm (mostly) looking for.
				
			
Bookmarks