本文整理汇总了C++中QWidget::clearMask方法的典型用法代码示例。如果您正苦于以下问题:C++ QWidget::clearMask方法的具体用法?C++ QWidget::clearMask怎么用?C++ QWidget::clearMask使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QWidget
的用法示例。
在下文中一共展示了QWidget::clearMask方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: clearMask
void QWidgetProto::clearMask()
{
QWidget *item = qscriptvalue_cast<QWidget*>(thisObject());
if (item)
item->clearMask();
}
示例2: updateLayout
void KasBar::updateLayout()
{
// kDebug(1345) << "KasBar: updateLayout(), count is " << items.count();
if ( !isUpdatesEnabled() )
return;
bool updates = isUpdatesEnabled();
setUpdatesEnabled( false );
// This is for testing a rectangular layout
// boxesPerLine_ = (uint) ceil(sqrt( items.count() ));
// Work out the number of rows and columns
unsigned int r=0, c=0;
if( items.count() > (unsigned int) boxesPerLine_ ) {
r = items.count()/boxesPerLine_;
c = boxesPerLine_;
}
else{
r = 1;
c = items.count();
}
if( r*c < items.count() ) // remainders
++r;
QSize sz;
if ( orient == Qt::Horizontal )
sz = QSize( c * itemExtent(), r * itemExtent() );
else
sz = QSize( r * itemExtent(), c * itemExtent() );
if ( sz != size() ) {
resize( sz );
}
setUpdatesEnabled( updates );
QWidget *top = topLevelWidget();
QRegion mask;
KasItem *i;
if ( orient == Qt::Horizontal ) {
for ( i = items.first(); i; i = items.next() ) {
int x = (items.at() % c) * itemExtent();
if ( direction_ == QBoxLayout::RightToLeft )
x = width() - x - itemExtent();
i->setPos( x, (items.at() / c) * itemExtent() );
i->update();
mask = mask.unite( QRegion( QRect( i->pos(), QSize(itemExtent(),itemExtent()) ) ) );
}
}
else {
for ( i = items.first(); i; i = items.next() ) {
int y = (items.at() / r) * itemExtent();
if ( direction_ == QBoxLayout::BottomToTop )
y = height() - y - itemExtent();
i->setPos( (items.at() % r) * itemExtent(), y );
i->update();
mask = mask.unite( QRegion( QRect( i->pos(), QSize(itemExtent(),itemExtent()) ) ) );
}
}
if ( useMask_ )
top->setMask( mask );
else
top->clearMask();
update();
}