Название: Как правильно добавить toolbar к QTableView Отправлено: sindbad07 от Апрель 18, 2010, 17:54 Подскажите пожалуйста как правильно добавить toolbar к QTableView, пробовал с помощью layout и dockwidget, но toolbar отображается поверх таблицы:
QTableView * view = new QTableView(); QMdiSubWindow * subWindow = mdiArea->addSubWindow( view ) ; ... QHBoxLayout * layout = new QHBoxLayout( view ); layout->setAlignment(Qt::AlignTop); QToolBar * viewtoolbar = new QToolBar("Действия", view); layout->addWidget( viewtoolbar ); ... subWindow->show(); Пробовал и так, всеравно тулбар создается поверх таблицы: QTableView * view = new QTableView(); QMdiSubWindow * subWindow = mdiArea->addSubWindow( view ) ; ... QWidget * widget = new QWidget; QVBoxLayout * layout = new QVBoxLayout( widget ); layout->addWidget( new QToolBar ); QDockWidget *dock_widget = new QDockWidget("Действия", view); dock_widget->setAllowedAreas(Qt::TopDockWidgetArea); dock_widget->setWidget( widget ); В QTableView также нет функции addDockWidget() как в QMainWindow - может есть аналог? Название: Re: Как правильно добавить toolbar к QTableView Отправлено: lit-uriy от Апрель 18, 2010, 18:12 >>Пробовал и так, всеравно тулбар создается поверх таблицы:
а где ему ещё появлятся? Мысленно поменяй табличное представление на QWidget, а панель инструментов на QPushButton, что получится? Название: Re: Как правильно добавить toolbar к QTableView Отправлено: Kolobok от Апрель 18, 2010, 18:18 попробуй так
Код: QMainWindow *parent = new QMainWindow(mdiArea, Qt::SubWindow); Название: Re: Как правильно добавить toolbar к QTableView Отправлено: sindbad07 от Апрель 18, 2010, 18:31 Спасибо всем, ноя я решил проблему так (так по идее и надо делать):
//создаем новый виджет QWidget * widget = new QWidget; //с помощью вертикального layout'а компонуем элементы формы на этом виджете QVBoxLayout * layout = new QVBoxLayout( widget ); QTableView * view = new QTableView(); QToolBar * toolbar = new QToolBar("Действия", view); layout->addWidget( toolbar ); layout->addWidget( view ); //указываем созданный виджет-контейнер в качестве содержимого нового окна (MDI) QMdiSubWindow * subWindow = mdiArea->addSubWindow(widget); subWindow->show(); Название: Re: Как правильно добавить toolbar к QTableView Отправлено: sindbad07 от Апрель 18, 2010, 18:42 попробуй так Код: QMainWindow *parent = new QMainWindow(mdiArea, Qt::SubWindow); Такой метод возможно тоже работает (не проверял), просто в моем окошке помимо TableView выше него будут и другие элементы (поля ввода и т.п.), поэтому лучше использовать layout, а вообще выверт интересный, спасибо за пример, а вообще qt и славится тем, что любыми классами можно жонглировать как угодно :) Название: Re: Как правильно добавить toolbar к QTableView Отправлено: MoPDoBoPoT от Апрель 18, 2010, 20:54 Есть такой метод QLayout::setMenuBar(QWidget * widget), благодаря которому не надо иметь именно вертикальный компоновщик и учитывать последовательность добавления в него виджетов.
|