Thanks.. Ill play with it some more tomorrow… Scott From: interest-bounces+scott.bloom=onshorecs....@qt-project.org [mailto:interest-bounces+scott.bloom=onshorecs....@qt-project.org] On Behalf Of mai...@virtual-winds.org Sent: Thursday, March 27, 2014 11:34 PM To: Interest@qt-project.org Subject: Re: [Interest] QSplitter + QScrollArea + QWidgetStack issues
Hello, I was faced with a similar exercice and solved if that way: void Util::setDialogSize(QDialog *dialog) { QDesktopWidget * desktopWidget = QApplication::desktop(); QRect screenRect = desktopWidget->screenGeometry(); dialog->setMaximumHeight(screenRect.height()-50); dialog->setMaximumWidth(screenRect.width()-20); QList<QScrollArea *> scrolls=dialog->findChildren<QScrollArea *>(QString(),Qt::FindDirectChildrenOnly); if(!scrolls.isEmpty()) { QScrollArea * scrollarea=scrolls.at(0); int ws=scrollarea->horizontalScrollBar()->height(); int ws1=scrollarea->verticalScrollBar()->height(); ws=qMin(ws,ws1); scrollarea->setWidgetResizable(true); scrollarea->widget()->adjustSize(); QSize s = QSize(scrollarea->widget()->sizeHint().width()+ws,scrollarea->widget()->sizeHint().height()+ws); if(s.height()>dialog->maximumHeight()) s.setHeight(dialog->maximumHeight()); if(s.width()>dialog->maximumWidth()) s.setWidth(dialog->maximumWidth()); dialog->resize(s); } } My case is a bit different because the QScrollArea is always at the top of the dialog. I agree it it would be better to have something cleaner in qt to do that. Regards, Philippe Lelong Le 28-03-2014 05:01, Scott Aron Bloom a écrit : I have a dialogbox, with a vertical QSplitter as the top level layout.. on the left goes a QTreeWidget, on the right a QScrollArea Inside the QScrollArea, there is a QWidgetStack in which multiple widgets are stacked. Here is my problem, when it first comes up, I want the right hand side, to work as if the scroll area was not there. Essential, just the stacked widget. The user can then minimize and see the scroll bars. I was hoping to use scrollArea->maximumViewportSize(), but its not correct (too small). Its laid out with Designer, so I don’t believe it’s a layout issue.. It works fine, except for the initial size. To “kind” of get it to work, I go over each widget in the stacked widget, get the minimumSizeHint, I compute the largest combination of them. Then I pad for the splitter width + the calculated minimum size of the tree. Then I pad for the other widgets (a dialog button box outside the splitter etc etc) But I just have to think, there should be some function somewhere, that I can call on a QScrollArea and say, find me an area that has no scroll bars, and use that as your initial size, and expand your parent widget. Thanks in advance.. Scott _______________________________________________ Interest mailing list Interest@qt-project.org<mailto:Interest@qt-project.org> http://lists.qt-project.org/mailman/listinfo/interest
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest