Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: panAlexey от Октябрь 01, 2011, 22:02



Название: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 01, 2011, 22:02
Как избавиться от пустого пространства в панели инструментов.
Используется qmdilib
причем если начинаешь дебажить, иногда после запуска под дебагом нормально выравнивается. (((


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: MoPDoBoPoT от Октябрь 01, 2011, 22:40
Может QWidget::layoutDirection() не тот выставлен?


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: lit-uriy от Октябрь 01, 2011, 23:04
>>Используется qmdilib
А оригинальный пример (demos\textedit) корректно работает?


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 01, 2011, 23:12
Может QWidget::layoutDirection() не тот выставлен?
не выставлялся вообще.


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 01, 2011, 23:14
>>Используется qmdilib
А оригинальный пример (demos\textedit) корректно работает?
нормально.
выяснил, что начинается такая бодяга, если добавить на панель вот этот виджет:
Код:
	comboSize = new QComboBox;
QFontDatabase db;
comboSize->setObjectName("Choose font size");
comboSize->setEditable(true);
foreach(int size, db.standardSizes())
comboSize->addItem(QString::number(size));
сейчас попробую ему сайзхинт выставить, может поможет...


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 01, 2011, 23:31
сейчас попробую ему сайзхинт выставить, может поможет...
не помогло. что-то ему еще надо. (((


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: serg_hd от Октябрь 02, 2011, 04:38
Может передать растяжение QSpacerItem'у? Правда, не в курсе можно ли его в панель инструментов добавить.
Код
C++ (Qt)
 spacer = new QSpacerItem(0, 0);
 layout->addWidget(button);
 layout->addItem(spacer);
 this->ltButton->setStretch(1, 10); // 10 - фактор растяжения
 


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: thechicho от Октябрь 02, 2011, 09:29
а чо в Qt Designer нельзя сделать? мышкой тупо выровнять как те надо и все)


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 02, 2011, 09:34
а чо в Qt Designer нельзя сделать? мышкой тупо выровнять как те надо и все)
Используется qmdilib.
дизайнер тут не участвует.


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: thechicho от Октябрь 02, 2011, 15:20
эээ...
а чо там формы нету чтоле? .ui файла


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: GreatSnake от Октябрь 03, 2011, 12:23
выяснил, что начинается такая бодяга, если добавить на панель вот этот виджет:
Код:
	comboSize = new QComboBox;
QFontDatabase db;
comboSize->setObjectName("Choose font size");
comboSize->setEditable(true);
foreach(int size, db.standardSizes())
comboSize->addItem(QString::number(size));
Хм, что-то на скриншоте я не вижу никакого комбобкса


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 03, 2011, 15:28
Хм, что-то на скриншоте я не вижу никакого комбобкса
Перекинул эти контролы вообще отдельно:
Лайот не отрабатывает судя по всему.
Использую Qt4.7.4 MinGW.
Может на 4.3.4 прохляет?
ПС. не прохляло ((((


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: kambala от Октябрь 03, 2011, 16:26
попробуй поиграться с sizePolicy, в крайнем случае поставь фиксированную длину


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 09, 2011, 22:58
попробуй поиграться с sizePolicy, в крайнем случае поставь фиксированную длину
можно поподробнее, к чему применить?


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: kambala от Октябрь 10, 2011, 01:01
комбобоксу - с ним же проблемы наблюдаются


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 11, 2011, 12:25
комбобоксу - с ним же проблемы наблюдаются
К любому на QAction виджету. я поменял QWorkspace на QMDIArea и понеслись глюки. О_о...


Название: Re: Как избавиться от пустого пространства в панели инструментов.
Отправлено: panAlexey от Октябрь 12, 2011, 01:52
комбобоксу - с ним же проблемы наблюдаются
не словсем.
скорее глюк какой-то.
обошел его - добавляю на тулбар комбобокс врукопашную без помощи qmdilib
столкнулся со след. глюком:
если на тулбар добавить виджет, а потом очистить его(тулбар->clear()), то повторное добавление этого виджета после очистки тулбара не добавляет виджет на панель.
что-то не либа, а глюк на глюке....
обошел и этот глюк след. образом:
Код:
QToolBar* RichTextClient::updateToolBar(QToolBar* tb) {
if (tb){
if (tb->objectName() == "Font"){
tb->clear();
if (m_comboAct){
tb->addAction( m_comboAct );
tb->addAction( m_comboSzAct  );
} else {
m_comboAct = tb->addWidget( (QWidget*)fontComboBox );
m_comboSzAct = tb->addWidget( (QWidget*)comboSize );
}
tb->addAction( actionTextColor );
tb->show();
}
}
return tb;
}
}
что-то эта глюкавость меня еже задалбывает.
еще остался один глюк с мельканием окон при создании миди клиента с закладками и двумя QTextEdit на каждой закладке.
Не подскажете как бороться?
textEdit->hide();
+
textEdit->show();
не помогают ((((((((((((