本文整理汇总了C++中ToolBar::geometry方法的典型用法代码示例。如果您正苦于以下问题:C++ ToolBar::geometry方法的具体用法?C++ ToolBar::geometry怎么用?C++ ToolBar::geometry使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ToolBar
的用法示例。
在下文中一共展示了ToolBar::geometry方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setNewToolBar
void ToolBarAreaImpl::setNewToolBar(ToolBar* toolBar, vector<int>& numStrechablesOfRow)
{
if(DEBUG_MODE){
cout << "ToolBarAreaImpl::setNewToolBar()" << endl;
}
if(toolBar){
ToolBarRowPtr toolBarRow;
int rowIndex = -1;
int width = toolBar->minimumSizeHint().width();
for(size_t i=0; i < toolBarRows.size(); ++i){
ToolBarRowPtr existingRow = toolBarRows[i];
ToolBar* lastToolBar = existingRow->toolBars.back();
if(lastToolBar){
QRect r = lastToolBar->geometry();
int lastX = r.x() + r.width();
int lastSpace = self->width() - lastX;
if(width <= lastSpace){
toolBar->desiredX = lastX + 1;
if(toolBar->isStretchable()){
width = std::min(toolBar->sizeHint().width(), lastSpace);
}
toolBarRow = existingRow;
rowIndex = i;
break;
}
}
}
if(!toolBarRow){
toolBar->desiredX = 0;
rowIndex = toolBarRows.size();
toolBarRow.reset(new ToolBarRow(self));
toolBarRows.push_back(toolBarRow);
numStrechablesOfRow.push_back(0);
}
toolBarRow->toolBars.push_back(toolBar);
if(toolBar->isStretchable()){
numStrechablesOfRow[rowIndex]++;
}
toolBar->setParent(self);
toolBar->setGeometry(toolBar->desiredX, 0, width, toolBar->sizeHint().height());
toolBar->show();
}
}
示例2: setNewToolBars
void ToolBarAreaImpl::setNewToolBars()
{
vector<int> numStrechablesOfRow;
for(size_t i=0; i < newToolBars.size(); ++i){
setNewToolBar(newToolBars[i], numStrechablesOfRow);
}
newToolBars.clear();
for(size_t i=0; i < numStrechablesOfRow.size(); ++i){
int numStrechables = numStrechablesOfRow[i];
if(numStrechables > 0){
ToolBarRowPtr& row = toolBarRows[i];
ToolBar* lastToolBar = row->toolBars.back();
QRect r = lastToolBar->geometry();
int space = self->width() - (r.x() + r.width());
if(space > 0){
expandStrechableBars(row, (space / numStrechables), 0, 0, numStrechables, space);
}
}
}
}