LinkDialogProcessorGraphicsItem::LinkDialogProcessorGraphicsItem(Side side, Processor* processor)
    : GraphicsItemData<Processor>(nullptr, side, processor) {
    setZValue(linkdialog::processorDepth);
    setFlags(ItemSendsGeometryChanges);

    setRect(-linkdialog::processorWidth / 2, -linkdialog::processorHeight / 2,
            linkdialog::processorWidth, linkdialog::processorHeight);

    auto identifier = new LabelGraphicsItem(this);
    identifier->setPos(rect().topLeft() + QPointF(linkdialog::offset, linkdialog::offset));
    identifier->setDefaultTextColor(Qt::white);
    auto idFont = QFont("Segoe", linkdialog::processorLabelHeight, QFont::Bold, false);
    idFont.setPixelSize(linkdialog::processorLabelHeight);
    identifier->setFont(idFont);
    identifier->setCrop(20, 19);

    auto classIdentifier = new LabelGraphicsItem(this);
    classIdentifier->setDefaultTextColor(Qt::lightGray);
    auto classFont = QFont("Segoe", linkdialog::processorLabelHeight, QFont::Normal, true);
    classFont.setPixelSize(linkdialog::processorLabelHeight);
    classIdentifier->setFont(classFont);
    classIdentifier->setCrop(20, 19);
    auto offset = classIdentifier->boundingRect().height();
    classIdentifier->setPos(rect().bottomLeft() +
                            QPointF(linkdialog::offset, -linkdialog::offset - offset));

    identifier->setText(QString::fromStdString(processor->getIdentifier()));
    classIdentifier->setText(QString::fromStdString(processor->getClassIdentifier()));

    for (auto& property : processor->getProperties()) {
        auto item = new LinkDialogPropertyGraphicsItem(this, property);
        properties_.push_back(item);
        item->hide();
        item->setParentItem(this);
    }
    
    
    LinkDialogTreeItem* prev = this;
    std::function<void(LinkDialogPropertyGraphicsItem*)> connect = [this, &connect, &prev](
        LinkDialogPropertyGraphicsItem* item) {
        prev->setNext(item);
        item->setPrev(prev);
        prev = item;
        for (auto i : item->getSubPropertyItemList()) {
            connect(i);
        }
    };
    for (auto item : properties_) connect(item);

    LinkDialogTreeItem* item = this;
    while (item) {
        item->updatePositions();
        item = item->next();
    }
}
示例#2
0
TnooFont::TnooFont(int pointSize) :
    QFont(QStringLiteral("nootka"), pointSize)
{
    setPixelSize(pointSize);
    setBold(false);
    setWeight(50); // Normal
}
示例#3
0
RankingLabel::RankingLabel(int w,int h,int picLen,QString iconPath, QString title, QString type, QString price, QWidget *parent)
{
	main_layout = new QHBoxLayout();
	main_layout->setContentsMargins(0, 0, 0, 0);
	main_layout->setMargin(0);

	QPalette palette;
	palette.setBrush(QPalette::WindowText, QBrush(Qt::white));
	//this->setPalette(palette);
	//this->setAutoFillBackground(true);

	m_icon = new QLabel();
	m_title = new QLabel();
	m_type = new QLabel();
	m_price = new QLabel();

	int min_len = w > h ? h : w;

	this->setMinimumSize(w, h);

	QPixmap pixmap(iconPath);
	QPixmap transformed_pxmap = pixmap.scaled(picLen, h , Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
	m_icon->setPixmap(transformed_pxmap);

	auto font = ProfileInstance().AppFont;
	font.setPixelSize(20);

	setColor(QColor(24, 116, 205));

	m_title->setText(title);
	m_title->setFont(font);
	m_title->setPalette(palette);

	//m_title->setGraphicsEffect(Profile::generateGlowEffect(QColor(255,255,255), 5));

	m_type->setText(type);
	m_type->setFont(ProfileInstance().AppFont);
	m_type->setPalette(palette);

	m_price->setText(price);
	m_price->setFont(ProfileInstance().AppFont);
	m_price->setPalette(palette);

	main_layout->addWidget(m_icon);

	QVBoxLayout *mid_layout = new QVBoxLayout();
	mid_layout->addWidget(m_title);
	mid_layout->addWidget(m_type);  

	main_layout->addLayout(mid_layout);
	main_layout->addStretch();
	main_layout->addWidget(m_price,0,Qt::AlignCenter);
	main_layout->addStretch();
	setLayout(main_layout);

	m_MouseOver = false;
	m_MousePress = false;

	this->update(); 
}
示例#4
0
void ImageViewport::paintEvent(QPaintEvent *){
	QPainter painter(this);
	if (!this->pixmap() && !this->movie()){
		painter.setBrush(QBrush(Qt::white));
		auto font = painter.font();
		font.setPixelSize(48);
		painter.setFont(font);
		QRect rect(0, 0, 800, 600);
		painter.fillRect(rect, Qt::black);
		painter.drawText(rect, "No image");
		return;
	}

	painter.setRenderHint(or_flags(QPainter::SmoothPixmapTransform, QPainter::Antialiasing));
	painter.setClipping(false);

	auto transform = this->get_final_transform();
	auto src_quad = this->compute_quad();
	auto offset = src_quad.move_to_origin();
	transform = translate(transform, offset);
	painter.setMatrix(transform);
	if (this->pixmap())
		painter.drawPixmap(QRect(QPoint(0, 0), this->image_size), *this->pixmap());
	else
		painter.drawPixmap(QRect(QPoint(0, 0), this->image_size), this->movie()->currentPixmap());
}
LinkDialogProcessorGraphicsItem::LinkDialogProcessorGraphicsItem(Side side, Processor* processor)
    : GraphicsItemData<Processor>(side, processor), animateExpansion_(1.0) {
    setZValue(linkdialog::processorDepth);
    setFlags(ItemSendsGeometryChanges);

    setRect(-linkdialog::processorWidth / 2, -linkdialog::processorHeight / 2,
            linkdialog::processorWidth, linkdialog::processorHeight);

    auto identifier = new LabelGraphicsItem(this);
    identifier->setPos(rect().topLeft() + QPointF(linkdialog::offset, linkdialog::offset));
    identifier->setDefaultTextColor(Qt::white);
    auto idFont = QFont("Segoe", linkdialog::processorLabelHeight, QFont::Bold, false);
    idFont.setPixelSize(linkdialog::processorLabelHeight);
    identifier->setFont(idFont);
    identifier->setCrop(20, 19);

    auto classIdentifier = new LabelGraphicsItem(this);
    classIdentifier->setDefaultTextColor(Qt::lightGray);
    auto classFont = QFont("Segoe", linkdialog::processorLabelHeight, QFont::Normal, true);
    classFont.setPixelSize(linkdialog::processorLabelHeight);
    classIdentifier->setFont(classFont);
    classIdentifier->setCrop(20, 19);
    auto offset = classIdentifier->boundingRect().height();
    classIdentifier->setPos(rect().bottomLeft() +
                            QPointF(linkdialog::offset, -linkdialog::offset - offset));

    identifier->setText(QString::fromStdString(processor->getIdentifier()));
    classIdentifier->setText(QString::fromStdString(processor->getClassIdentifier()));

    QPointF newPos(0.0f, rect().height());
    for (auto& property : processor->getProperties()) {
        auto item = new LinkDialogPropertyGraphicsItem(this, property);
        properties_.push_back(item);
        item->setParentItem(this);
        item->setPos(newPos);
        size_t count = 1 + item->getTotalVisibleChildCount();
        newPos += QPointF(0, count * linkdialog::propertyHeight);
        item->show();
    }
}
示例#6
0
FT_Error THFreeTypeFont::matchBitmapFont(THSpriteSheet* pBitmapFontSpriteSheet)
{
    if(pBitmapFontSpriteSheet == nullptr)
        return FT_Err_Invalid_Argument;

    // Try to take the size and colour of a standard character (em is generally
    // the standard font character, but for fonts which only have numbers, zero
    // seems like the next best choice).
    for(const char* sCharToTry = "M0"; *sCharToTry; ++sCharToTry)
    {
        unsigned int iWidth, iHeight;
        unsigned int iSprite = *sCharToTry - 31;
        if(pBitmapFontSpriteSheet->getSpriteSize(iSprite, &iWidth, &iHeight)
        && pBitmapFontSpriteSheet->getSpriteAverageColour(iSprite, &m_oColour)
        && iWidth > 1 && iHeight > 1)
        {
            return setPixelSize(iWidth, iHeight);
        }
    }

    // Take the average size of all characters, and the colour of one of them.
    unsigned int iWidthSum = 0, iHeightSum = 0, iAverageNum = 0;
    for(unsigned int i = 0; i < pBitmapFontSpriteSheet->getSpriteCount(); ++i)
    {
        unsigned int iWidth, iHeight;
        pBitmapFontSpriteSheet->getSpriteSizeUnchecked(i, &iWidth, &iHeight);
        if(iWidth <= 1 || iHeight <= 1)
            continue;
        if(!pBitmapFontSpriteSheet->getSpriteAverageColour(i, &m_oColour))
            continue;
        iWidthSum += iWidth;
        iHeightSum += iHeight;
        ++iAverageNum;
    }
    if(iAverageNum == 0)
        return FT_Err_Divide_By_Zero;

    return setPixelSize((iWidthSum + iAverageNum / 2) / iAverageNum,
                        (iHeightSum + iAverageNum / 2) / iAverageNum);
}
int PixelDelegate::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QAbstractItemDelegate::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: setPixelSize((*reinterpret_cast< int(*)>(_a[1]))); break;
        default: ;
        }
        _id -= 1;
    }
    return _id;
}
示例#8
0
//--------------------------------------------------------------------------------------------------
/// Set the size of the text box to fit the current text.
///
/// The method will also add a bit of space for the border or background if enabled.
//--------------------------------------------------------------------------------------------------
void OverlayTextBox::setSizeToFitText()
{
    cvf::Vec2ui textSize = m_font->textExtent(m_text);

    // Add the size of an 'A' as the margin, same as used in the Text Drawer
    ref<Glyph> glyph = m_font->getGlyph(L'A');
    Vec2ui size = Vec2ui(textSize.x() + glyph->width(), textSize.y() + glyph->height());

    if (m_drawBorder)
    {
        size.x() += 4;
        size.y() += 4;
    }

    setPixelSize(size);
}
示例#9
0
文件: util.cpp 项目: h2so5/PaintField
void applyMacSmallSize(QWidget *widget)
{
	// does not apply to QMenu objects
	if (qobject_cast<QMenu *>(widget))
		return;
	
#ifdef Q_OS_MAC
	widget->setAttribute(Qt::WA_MacSmallSize);
#else
	auto font = widget->font();
	font.setPixelSize(11);
	widget->setFont(font);
#endif
	for (QObject *object : widget->children())
	{
		QWidget *widget = qobject_cast<QWidget *>(object);
		if (widget)
			applyMacSmallSize(widget);
	}
}
示例#10
0
void QFFrameRangeEdit::setPixelSize(double width, double height)
{
    setPixelSize(QSizeF(width, height));
}
示例#11
0
void QFFrameRangeEdit::setPixelSize(double width_and_height)
{
    setPixelSize(QSizeF(width_and_height, width_and_height));
}
示例#12
0
CentralWidget::CentralWidget():thisData_(ThisDataType(
    new zone_data::CentralWidgetData,
    [](zone_data::CentralWidgetData *arg) {delete arg; })) {
    this->setOrientation(Qt::Horizontal);
    zone_this_data(this);
    var_this_data->listView=new ListView;
    this->addWidget(var_this_data->listView);
    var_this_data->novelWidget=new DingDianNovelWidget;
    this->addWidget(var_this_data->novelWidget);

    {
        auto varSizePolicy=var_this_data->listView->sizePolicy();
        varSizePolicy.setHorizontalStretch(0);
        var_this_data->listView->setSizePolicy(varSizePolicy);
    }

    {
        auto varSizePolicy=var_this_data->novelWidget->sizePolicy();
        varSizePolicy.setHorizontalStretch(1);
        var_this_data->novelWidget->setSizePolicy(varSizePolicy);
    }
    /*设置listview 样式*/
    std::shared_ptr<std::function<QWidget*(QWidget*,QModelIndex)>> createFunction=
        std::shared_ptr<std::function<QWidget*(QWidget*,QModelIndex)>>(
            new std::function<QWidget*(QWidget*,QModelIndex)>{
        [](QWidget* argParent,QModelIndex) ->QWidget * {
        ItemWidget * varAns=new ItemWidget(argParent);
        return varAns;
    }/*~lambda function*/
    });
    var_this_data->listView->setCreateFunction(createFunction);
    /*设置model*/
    if (var_this_data->listView->model()) {
        var_this_data->listView->model()->deleteLater();
    }
    var_this_data->listView->setModel(new DingDianModel);

    {
        auto varStyle=DingDianSytle::instance();
        auto varNovelLayout=std::make_shared<NovelLayout>();
        auto varFont=varNovelLayout->font();
        varFont.setPixelSize(varStyle->fontPixSize());
        varFont.setWeight(QFont::Medium);
        varNovelLayout->setFont(varFont);
        varNovelLayout->setDrawColor(varStyle->fontColor());
        var_this_data->novelWidget->setNovelLayout(varNovelLayout);
    }

    connect(
        var_this_data->listView,
        &ListView::onCurrentChanged,
        this,
        [this]() {
        zone_this_data(this);
        this->onCurrentChanged(var_this_data->showLastPage);
        var_this_data->showLastPage=false;
    });

    connect(
        var_this_data->novelWidget,
        &NovelWidget::nextPageEndl,
        this,[var_this_data]() {
        var_this_data->novelWidget->onKeyPressed(Qt::Key_Down);
    });

    connect(
        var_this_data->novelWidget,
        &NovelWidget::previousPageEndl,
        this,[var_this_data]() {
        var_this_data->showLastPage=true;
        var_this_data->novelWidget->onKeyPressed(Qt::Key_Up);
    });

    connect(
        var_this_data->novelWidget,
        &NovelWidget::onKeyPressed,
        this,
        [var_this_data](Qt::Key argKey) {
        if (argKey==Qt::Key_Up) {
            auto varListView=var_this_data->listView;
            auto *varModel=varListView->model();
            auto varIndex=varModel->index(
                std::max(0,varListView->currentIndex().row()-1),
                0);
            varListView->setCurrentIndex(varIndex);
        }
        else if (argKey==Qt::Key_Down) {
            auto varListView=var_this_data->listView;
            auto *varModel=varListView->model();
            auto varIndex=varModel->index(
                std::min(
                std::max(0,varModel->rowCount()-1),
                1+varListView->currentIndex().row()),
                0);
            varListView->setCurrentIndex(varIndex);
        }
    });
}
void WidgetMain::initData()
{
	//设置TreeWidget的font大小
	{
		auto font = treeWidget->font();
		font.setPixelSize(11);
		treeWidget->setFont(font);
	}
	pushButtonInfor->installEventFilter(this);

    pDustbin_ = new Label(this);//还可以用他的hover,通过eventfilter
    pDustbin_->hide();

	pBackStart_ = new QLabel(this);
	pBackStart_->installEventFilter(this);
	QPixmap pix("./resource/images/bb/JumpToStart_idle.png");
	pBackStart_->resize(pix.size());
	pBackStart_->setPixmap(pix);
	{
		int y = widgetTitle->height()+widgetMenu->height()+10+255;
		pBackStart_->move(widgetLeft->width()+10, y);
	}
	//pBackStart_->setOpacity(0);
	pBackStart_->hide();

	pSerialPortToolLabel_ = new FunctionAreaWidget(this);
	connect(pSerialPortToolLabel_, SIGNAL(signalClick()), this, SLOT(slotCreateSerialTool()));
	pSerialPortToolLabel_->addData(QPixmap("./resource/images/tool_area/TopToolBar_Serial.png"), "Serial");
	pSerialPortToolLabel_->move(this->width()-200, 31);
	pSerialPortToolLabel_->show();
    {
        QPixmap pix("./resource/images/tool_area/TopToolBar_del");
        pDustbin_->resize(pix.size());
        pDustbin_->setPixmap(pix);
    }

    labelLogo->installEventFilter(this);
    pDustbin_->installEventFilter(this);
    widgetLeft->installEventFilter(this);

    pAllBlockMenu_ = new QMenu(this);

    {
        // 啦拉拉在这里检测所有的模块
        QString path = "./resource/Blocks";
        QDir dir(path);
        dir.setFilter(QDir::AllDirs | QDir::NoDotAndDotDot);
        foreach (const QString &dirName, dir.entryList())
        {
            //ListWidgetItem
            QString dirPath = path + "/" +dirName;
            QTreeWidgetItem *pTreeItem = new QTreeWidgetItem(treeWidget, QStringList(dirName));
            pTreeItem->setSizeHint(0, QSize(100,20));
            pTreeItem->setData(0,Qt::UserRole+1,dirPath);
            map_treeWidgetItemPointer_pageIndex_.insert(pTreeItem, pageIndex_++);
            //menu
            QMenu *pMenu = pAllBlockMenu_->addMenu(dirName);
            scanBlocks(dirPath, pTreeItem, pMenu);
        }
        {
            //treeWidget->setCurrentIndex(treeWidget->indexAt(QPoint(5, 5)));
        }
    }

    {
        QPixmap pixNormal("./resource/images/common/Blocks_Begin.png");
        QPixmap pixHover("./resource/images/common/Blocks_Begin_p.png");
        QPixmap pixPressed("./resource/images/common/Blocks_Begin_o.png");
        pixNormal.scaled(QSize(26, 26));
        pixHover.scaled(QSize(26, 26));
        QListWidgetItem *pItem = new QListWidgetItem("");
        pItem->setSizeHint(QSize(38, 38));//26*26
        BlockMenuWidget *pWidget = new BlockMenuWidget(pixNormal, pixHover, pixPressed);

        listWidgetMenu->addItem(pItem);
        listWidgetMenu->setItemWidget(pItem, pWidget);
    }
    {
        QPixmap pixNormal("./resource/images/common/Blocks_All.png");
        QPixmap pixHover("./resource/images/common/Blocks_All_p.png");
        QPixmap pixPressed("./resource/images/common/Blocks_All_o.png");
        pixNormal.scaled(QSize(26, 26));
        pixHover.scaled(QSize(26, 26));
        QListWidgetItem *pItem = new QListWidgetItem("");
        pItem->setSizeHint(QSize(38, 38));
        BlockMenuWidget *pWidget = new BlockMenuWidget(pixNormal, pixHover, pixPressed);

        listWidgetMenu->addItem(pItem);
        listWidgetMenu->setItemWidget(pItem, pWidget);
    }
    connect(listWidgetMenu, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this,
                                   SLOT(slotCurrentItemChanged(QListWidgetItem*,QListWidgetItem*)));

    pEditScene_ = new EditScene(QRectF(0, 0, 840, 640), widgetShowScene);
    pEditScene_->setWidgetMain(this);
    pEditScene_->setComponentData(&hash_blockPath_blockData_);
    pEditScene_->addModuleTagData(map_moduleName_moduleTag_);
    widgetShowScene->setScenePointer(pEditScene_ );
    //	pEditScene_->setListWidgetModulePointer(listWidget);
	connect(pEditScene_, SIGNAL(signalViewOffset(QPoint)), this, SLOT(slotViewOffset(QPoint)));
    connect(pEditScene_, SIGNAL(signalShowSubWindows()), this, SLOT(slotShowSubWindows()));
    connect(pEditScene_, SIGNAL(signalFocusInLine(FlowLine*,QString,QString)), this,
            SLOT(slotFocusInLine(FlowLine*,QString,QString)));
    connect(pEditScene_, SIGNAL(signalFocusInGroup(QString)), this, SLOT(slotFocusInGroup(QString)));
    connect(this, SIGNAL(signalCreateGroup(QString)), pEditScene_, SLOT(slotCreateGroup(QString)));

    createListWidget();
    pListWidget_ = static_cast<ListWidgetAdvanceBlock*>(stackedWidgetBlockType->currentWidget());

	QTimer::singleShot(50, this, SLOT(slotOpenAutoUpdate()));
}
示例#14
0
文件: rasterinfo.cpp 项目: dmm/cegis
bool RasterInfo::setPixelDescription( bool isSigned, int bitsCount, const QString &type, double pixelSize, double fillValue, double noDataValue )
{
   return setDataType( isSigned, bitsCount, type ) && setPixelSize( pixelSize ) && setFillValue( fillValue ) && setNoDataValue( noDataValue );
}
示例#15
0
文件: rasterinfo.cpp 项目: dmm/cegis
bool RasterInfo::setPixelDescription( const QString &dataType, double pixelSize, double fillValue, double noDataValue )
{
   return setDataType( dataType ) && setPixelSize( pixelSize ) && setFillValue( fillValue ) && setNoDataValue( noDataValue );
}