Название: Добавляю QToolbar на QLayoutе в QWidget, а он ведет себя как "картинка" Отправлено: tguglanaklona от Сентябрь 20, 2010, 11:49 Добавляю QToolbar на QLayoutе в QWidget, а он ведет себя как "картинка" (нажать на кнопки не выходит даже "визуально"), мой мозг уже вынесен, помогите :)
P.S.: при этом корректно работает toolbar в закомментированном //sample но открывается соответственно в новом окне QWidget а мне нужно в текущем.. clonewidget.h class CloneWidget : public QDockWidget, public CloneWidgetClass { Q_OBJECT public: CloneWidget(QWidget *parent); ~CloneWidget(); ... QToolBar toolbar; QVBoxLayout lay0t; QAction actionNew; ... private slots: void on_newMenu_clicked(); ... }; clonewidget.cpp CloneWidget::CloneWidget(QWidget *parent) : QDockWidget(parent), applicationName("Parser Window") , toolbar("Macros Editor Toolbar", this), lay0t(this), actionNew(this)... { ... } void CloneWidget::CreateMacroWindow() { setupUi(this); this->setFloating(1); toolbar.setFloatable(1); actionNew.setText("&New"); toolbar.addAction(&actionNew); setLayout(&lay0t); lay0t.addWidget(&toolbar); actionNew.setEnabled(true); connect(&actionNew,SIGNAL(triggered()),this,SLOT(on_newMenu_clicked())); ... //sample /* QWidget * widget = new QWidget; QVBoxLayout * layout = new QVBoxLayout( widget ); layout->addWidget( &toolbar ); this->setWidget( widget ); */ ... this->adjustSize(); } xxx.h CloneWidget wndMacro; xxx.cpp wndMacro.CreateMacroWindow(); mainWnd->addDockWidget(Qt::NoDockWidgetArea, &wndMacro); wndMacro.setFloating(1); wndMacro.setWindowModality(Qt::ApplicationModal); wndMacro.show(); Название: Re: Добавляю QToolbar на QLayoutе в QWidget, а он ведет себя как "картинка" Отправлено: EhTemka от Сентябрь 20, 2010, 21:24 Попробуй в //sample написать QWidget * widget = new QWidget(this);
И вообще, почему бы сам toolbar не установить в качестве виджета для дока: this->addWidget(&toolbar) Название: Re: Добавляю QToolbar на QLayoutе в QWidget, а он ведет себя как "картинка" Отправлено: tguglanaklona от Сентябрь 21, 2010, 09:37 В DockWidget-е нет такой функции addWidget только setWidget, которая делает мне новое окно соответственно без всего ГУИ, которое в данное уже запихнуто :( Мне нужно и ГУИ оставить и тулбар к нему засунуть :(
Еще У меня изначально наследником моего СloneWidget wndMacro; не является QMainWindow, а Win32-овое окошко. Может в этом дело? Как это разрулить вообще можно? У меня тот же код запускается из отдельной программки с QMainWindow и работает нормально :( Название: Re: Добавляю QToolbar на QLayoutе в QWidget, а он ведет себя как "картинка" Отправлено: EhTemka от Сентябрь 22, 2010, 09:47 Да, вы правы setWidget - опечатался. Насколько я понял из кода CloneWidget - это наследник QDockWidget и CloneWidgetClass. Или под наследником вы понимаете что-то другое. У меня приведенный код работает корректно. Может выложите код с вашим Win32-вым окошком?
Название: Re: Добавляю QToolbar на QLayoutе в QWidget, а он ведет себя как "картинка" Отправлено: tguglanaklona от Сентябрь 22, 2010, 15:06 Как то разрулилось. Спасибо за поддержку))) Пока еще не поняли, где была ошибка, а разрулилось простым перекопированием того же самого текста второй раз в новое место. Может, баг... Будет время - разберусь все-таки, отчего оно лажало ??? Выслать, к сожалению, не могу (нудно отсоединять его от проги). Блин, в отдельном окошке действительно тоже все работало :)
Название: Re: Добавляю QToolbar на QLayoutе в QWidget, а он ведет себя как "картинка" Отправлено: borik120 от Сентябрь 23, 2010, 18:52 только что решил у себя анологичную проблему. дело было в том что обьект(кнопка) размещался за QGridLayout, который в этом месте был пуст, но существовал.
Название: Re: Добавляю QToolbar на QLayoutе в QWidget, а он ведет себя как "картинка" Отправлено: tguglanaklona от Сентябрь 27, 2010, 12:46 Пасиб. Проверю :)
|