本文整理汇总了C++中QTextFrameFormat::setMargin方法的典型用法代码示例。如果您正苦于以下问题:C++ QTextFrameFormat::setMargin方法的具体用法?C++ QTextFrameFormat::setMargin怎么用?C++ QTextFrameFormat::setMargin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTextFrameFormat
的用法示例。
在下文中一共展示了QTextFrameFormat::setMargin方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QwtRichTextDocument
QwtRichTextDocument( const QString &text, int flags, const QFont &font )
{
setUndoRedoEnabled( false );
setDefaultFont( font );
setHtml( text );
// make sure we have a document layout
( void )documentLayout();
QTextOption option = defaultTextOption();
if ( flags & Qt::TextWordWrap )
option.setWrapMode( QTextOption::WordWrap );
else
option.setWrapMode( QTextOption::NoWrap );
option.setAlignment( ( Qt::Alignment ) flags );
setDefaultTextOption( option );
QTextFrame *root = rootFrame();
QTextFrameFormat fm = root->frameFormat();
fm.setBorder( 0 );
fm.setMargin( 0 );
fm.setPadding( 0 );
fm.setBottomMargin( 0 );
fm.setLeftMargin( 0 );
root->setFrameFormat( fm );
adjustSize();
}
示例2: edit
text_writer( docEdit& e ) : edit( e ) {
QTextCursor cursor = edit.textCursor();
cursor.movePosition( QTextCursor::Start );
mainFrame = cursor.currentFrame();
plainFormat = cursor.charFormat();
plainFormat.setFontPointSize( 10 );
paragraphFormat = plainFormat;
paragraphFormat.setFontPointSize( 12 );
headingFormat = plainFormat;
headingFormat.setFontWeight( QFont::Bold );
headingFormat.setFontPointSize( 16 );
empasisFormat = plainFormat;
empasisFormat.setFontItalic( true );
tagFormat = plainFormat;
tagFormat.setForeground( QColor( "#990000" ) );
tagFormat.setFontUnderline( true );
underlineFormat = plainFormat;
underlineFormat.setFontUnderline( true );
frameFormat.setBorderStyle( QTextFrameFormat::BorderStyle_Inset );
frameFormat.setBorder( 1 );
frameFormat.setMargin( 10 );
frameFormat.setPadding( 4 );
}
示例3: appendMessageToCurrentSession
/*! Append a new message to the current session and scroll to the end of the message protocol and
returns true if the action was successful. The \a messageColor defines the color of the message
box and should be provided as a full-color (no dimming required) color, as it is automatically
adjusted for the border and background.
*/
bool QwcPrivateMessager::appendMessageToCurrentSession(QTextDocument *document, const QString message, const QColor messageColor)
{
if (!document) { return false; }
QTextCursor cursor = document->rootFrame()->lastCursorPosition();
cursor.movePosition(QTextCursor::StartOfBlock);
QTextFrameFormat frameFormat;
frameFormat.setPadding(4);
frameFormat.setBackground(messageColor.lighter(190));
frameFormat.setMargin(0);
frameFormat.setBorder(2);
frameFormat.setBorderBrush(messageColor.lighter(150));
frameFormat.setBorderStyle(QTextFrameFormat::BorderStyle_Outset);
// Title
QTextCharFormat backupCharFormat = cursor.charFormat();
QTextCharFormat newCharFormat;
newCharFormat.setFontPointSize(9);
QTextBlockFormat headerFormat;
headerFormat.setAlignment(Qt::AlignHCenter);
cursor.insertBlock(headerFormat);
cursor.setCharFormat(newCharFormat);
cursor.insertText(QDateTime::currentDateTime().toString());
QTextFrame *frame = cursor.insertFrame(frameFormat);
cursor.setCharFormat(backupCharFormat);
frame->firstCursorPosition().insertText(message);
return true;
}
示例4:
QTextFrame *QTextDocumentPrivate::rootFrame() const
{
if (!rtFrame) {
QTextFrameFormat defaultRootFrameFormat;
defaultRootFrameFormat.setMargin(DefaultRootFrameMargin);
rtFrame = qobject_cast<QTextFrame *>(const_cast<QTextDocumentPrivate *>(this)->createObject(defaultRootFrameFormat));
}
return rtFrame;
}
示例5: setChapterCounter
/*!
* \author Anders Fernström
* \date 2006-03-02
*
* \brief set the chapter counter
*/
void InputCell::setChapterCounter( QString number )
{
chaptercounter_->selectAll();
chaptercounter_->setPlainText( number );
chaptercounter_->setAlignment( (Qt::AlignmentFlag)Qt::AlignRight );
QTextFrameFormat format = chaptercounter_->document()->rootFrame()->frameFormat();
format.setMargin( style_.textFrameFormat()->margin() +
style_.textFrameFormat()->border() +
style_.textFrameFormat()->padding() );
chaptercounter_->document()->rootFrame()->setFrameFormat( format );
}
示例6: QMainWindow
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 获取文档对象
QTextDocument *document = ui->textEdit->document();
// 获取根框架
QTextFrame *rootFrame = document->rootFrame();
// 创建框架格式
QTextFrameFormat format;
// 边界颜色
format.setBorderBrush(Qt::red);
// 边界宽度
format.setBorder(3);
// 框架使用格式
rootFrame->setFrameFormat(format);
QTextFrameFormat frameFormat;
// 设置背景颜色
frameFormat.setBackground(Qt::lightGray);
// 设置边距
frameFormat.setMargin(10);
// 设置填衬
frameFormat.setPadding(5);
frameFormat.setBorder(2);
frameFormat.setBorderStyle(QTextFrameFormat::BorderStyle_Dotted); //设置边框样式
// 获取光标
QTextCursor cursor = ui->textEdit->textCursor();
// 在光标处插入框架
cursor.insertFrame(frameFormat);
//以下是5.2.2节内容
QAction *action_textFrame = new QAction(tr("框架"),this);
connect(action_textFrame,SIGNAL(triggered()),this,SLOT(showTextFrame()));
// 在工具栏添加动作
ui->mainToolBar->addAction(action_textFrame);
QAction *action_textBlock = new QAction(tr("文本块"),this);
connect(action_textBlock,SIGNAL(triggered()),this,SLOT(showTextBlock()));
ui->mainToolBar->addAction(action_textBlock);
QAction *action_font = new QAction(tr("字体"),this);
// 设置动作可以被选中
action_font->setCheckable(true);
connect(action_font,SIGNAL(toggled(bool)),this,SLOT(setTextFont(bool)));
ui->mainToolBar->addAction(action_font);
}
示例7: convert
QTextDocument* Converter::convert( const QString &fileName )
{
Document *textDocument = new Document( fileName );
textDocument->setPageSize(QSizeF( 600, 800 ));
QTextFrameFormat frameFormat;
frameFormat.setMargin( 20 );
QTextFrame *rootFrame = textDocument->rootFrame();
rootFrame->setFrameFormat( frameFormat );
emit addMetaData( Okular::DocumentInfo::MimeType, "text/plain" );
return textDocument;
}
示例8: sizeForWidth
/*
QSize PsiTipLabel::sizeForWidth(int w) const
{
QRect br;
int hextra = 2 * margin;
int vextra = hextra;
if (isRichText) {
hextra = 1;
vextra = 1;
}
PsiRichText::ensureTextLayouted(doc, w);
const qreal oldTextWidth = doc->textWidth();
doc->adjustSize();
br = QRect(QPoint(0, 0), doc->size().toSize());
doc->setTextWidth(oldTextWidth);
QFontMetrics fm(font());
QSize extra(hextra + 1, vextra);
// Make it look good with the default ToolTip font on Mac, which has a small descent.
if (fm.descent() == 2 && fm.ascent() >= 11)
vextra++;
const QSize contentsSize(br.width() + hextra, br.height() + vextra);
return contentsSize;
}
*/
QSize PsiTipLabel::sizeHint() const
{
QTextFrameFormat fmt = doc->rootFrame()->frameFormat();
fmt.setMargin(0);
doc->rootFrame()->setFrameFormat(fmt);
// PsiRichText::ensureTextLayouted(doc, -1);
doc->adjustSize();
// br = QRect(QPoint(0, 0), doc->size().toSize());
// this way helps to fight empty space on the right:
QSize docSize = QSize(static_cast<int>(doc->idealWidth()), doc->size().toSize().height());
QFontMetrics fm(font());
QSize extra(2*margin + 2, 2*margin + 1); // "+" for tip's frame
// Make it look good with the default ToolTip font on Mac, which has a small descent.
if (fm.descent() == 2 && fm.ascent() >= 11)
++extra.rheight();
return docSize + extra;
}
示例9: execute
/*!
* \class TextCursorChangeMargin
* \author Anders Fernström
* \date 2005-11-03
* \date 2005-11-07 (update)
*
* \brief Command for changing margin
*
* 2005-11-07 AF, implemented the function
*/
void TextCursorChangeMargin::execute()
{
QTextEdit *editor = document()->getCursor()->currentCell()->textEdit();
if( editor )
{
QTextFrameFormat format = editor->document()->rootFrame()->frameFormat();
format.setMargin( margin_ );
editor->document()->rootFrame()->setFrameFormat( format );
// create a rule for the margin
QString ruleValue;
ruleValue.setNum( margin_ );
Rule *rule = new Rule( "OMNotebook_Margin", ruleValue );
document()->getCursor()->currentCell()->addRule( rule );
// update the cells style
document()->getCursor()->currentCell()->style()->textFrameFormat()->setMargin( margin_ );
}
}
示例10: setStyle
/*!
* \author Anders Fernström
* \date 2005-10-27
* \date 2006-03-02 (update)
*
* \brief Set cell style
*
* IMPORTANT: User shouldn't be able to change style on inputcells
* so this function always use "Input" as style.
*
* 2005-11-03 AF, updated so the text is selected when the style
* is changed, after the text is unselected.
* 2006-03-02 AF, set chapter style
*
* \param style The cell style that is to be applyed to the cell
*/
void InputCell::setStyle(CellStyle style)
{
if( style.name() == "Input" )
{
Cell::setStyle( style );
// select all the text
input_->selectAll();
// set the new style settings
input_->setAlignment( (Qt::AlignmentFlag)style_.alignment() );
input_->mergeCurrentCharFormat( (*style_.textCharFormat()) );
input_->document()->rootFrame()->setFrameFormat( (*style_.textFrameFormat()) );
// unselect the text
QTextCursor cursor( input_->textCursor() );
cursor.clearSelection();
input_->setTextCursor( cursor );
// 2006-03-02 AF, set chapter counter style
chaptercounter_->selectAll();
chaptercounter_->mergeCurrentCharFormat( (*style_.textCharFormat()) );
QTextFrameFormat format = chaptercounter_->document()->rootFrame()->frameFormat();
format.setMargin( style_.textFrameFormat()->margin() +
style_.textFrameFormat()->border() +
style_.textFrameFormat()->padding() );
chaptercounter_->document()->rootFrame()->setFrameFormat( format );
chaptercounter_->setAlignment( (Qt::AlignmentFlag)Qt::AlignRight );
cursor = chaptercounter_->textCursor();
cursor.clearSelection();
chaptercounter_->setTextCursor( cursor );
}
else
{
setStyle( "Input" );
}
}
示例11: QStringLiteral
QTextDocument *TalkablePainter::createDescriptionDocument(const QString &text, int width, QColor color) const
{
QString description = Qt::escape(text).replace(
'\n', Configuration->showMultiLineDescription() ? QStringLiteral("<br/>") : QStringLiteral(" "));
QTextDocument *const doc = new QTextDocument();
doc->setDefaultFont(Configuration->descriptionFont());
if (color.isValid())
doc->setDefaultStyleSheet(QString("* { color: %1; }").arg(color.name()));
doc->setHtml(QString("<span>%1</span>").arg(description));
QTextOption opt = doc->defaultTextOption();
opt.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
doc->setDefaultTextOption(opt);
QTextFrameFormat frameFormat = doc->rootFrame()->frameFormat();
frameFormat.setMargin(0);
doc->rootFrame()->setFrameFormat(frameFormat);
doc->setTextWidth(width);
return doc;
}
示例12: print
void TextPrinter::print(QPrinter *printer)
{
if (!printer || !tempdoc_) return;
tempdoc_->setUseDesignMetrics(true);
tempdoc_->documentLayout()->setPaintDevice(printer);
tempdoc_->setPageSize(contentRect(printer).size());
// dump existing margin (if any)
QTextFrameFormat fmt = tempdoc_->rootFrame()->frameFormat();
fmt.setMargin(0);
tempdoc_->rootFrame()->setFrameFormat(fmt);
// to iterate through pages we have to worry about
// copies, collation, page range, and print order
// get num copies
int doccopies;
int pagecopies;
if (printer->collateCopies()) {
doccopies = 1;
pagecopies = printer->numCopies();
} else {
doccopies = printer->numCopies();
pagecopies = 1;
}
// get page range
int firstpage = printer->fromPage();
int lastpage = printer->toPage();
if (firstpage == 0 && lastpage == 0) { // all pages
firstpage = 1;
lastpage = tempdoc_->pageCount();
}
// print order
bool ascending = true;
if (printer->pageOrder() == QPrinter::LastPageFirst) {
int tmp = firstpage;
firstpage = lastpage;
lastpage = tmp;
ascending = false;
}
// loop through and print pages
QPainter painter(printer);
painter.setRenderHints(QPainter::Antialiasing |
QPainter::TextAntialiasing |
QPainter::SmoothPixmapTransform, true);
for (int dc=0; dc<doccopies; dc++) {
int pagenum = firstpage;
while (true) {
for (int pc=0; pc<pagecopies; pc++) {
if (printer->printerState() == QPrinter::Aborted ||
printer->printerState() == QPrinter::Error) {
return;
}
// print page
paintPage(&painter, tempdoc_, pagenum);
if (pc < pagecopies-1) printer->newPage();
}
if (pagenum == lastpage) break;
if (ascending) pagenum++;
else pagenum--;
printer->newPage();
}
if (dc < doccopies-1) printer->newPage();
}
}
示例13: paint
void RichTextDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QStyleOptionViewItemV4 opt = option;
initStyleOption(&opt, index);
if (!opt.text.contains(QLatin1Char('<'))) {
QStyledItemDelegate::paint(painter, option, index);
return;
}
QStyle *style = opt.widget ? opt.widget->style() : QApplication::style();
QString text = opt.text;
opt.text.clear();
style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, opt.widget);
QRect textRect = style->subElementRect(QStyle::SE_ItemViewItemText, &opt, opt.widget);
QString key = QLatin1String("RichTextDelegate-") + text;
QPixmap pm;
if (!QPixmapCache::find(key, &pm)) {
m_doc->setDefaultFont(opt.font);
QTextOption textOpt = m_doc->defaultTextOption();
textOpt.setAlignment(QStyle::visualAlignment(opt.direction, opt.displayAlignment));
bool wrapText = opt.features & QStyleOptionViewItemV2::WrapText;
textOpt.setWrapMode(wrapText ? QTextOption::WordWrap : QTextOption::ManualWrap);
textOpt.setTextDirection(opt.direction);
m_doc->setDefaultTextOption(textOpt);
QTextFrameFormat fmt = m_doc->rootFrame()->frameFormat();
fmt.setMargin(0);
m_doc->rootFrame()->setFrameFormat(fmt);
m_doc->setTextWidth(textRect.width());
m_doc->setHtml(text);
QAbstractTextDocumentLayout::PaintContext context;
context.palette = opt.palette;
context.palette.setColor(QPalette::Text, context.palette.light().color());
pm = QPixmap(m_doc->size().width(), m_doc->size().height());
pm.fill(Qt::transparent);
QPainter pmPainter(&pm);
m_doc->documentLayout()->draw(&pmPainter, context);
QPixmapCache::insert(key, pm);
}
int hDelta = textRect.width() - pm.width();
int vDelta = textRect.height() - pm.height();
int x = textRect.left();
int y = textRect.top();
if (opt.displayAlignment & Qt::AlignVCenter)
y += vDelta / 2;
else if (opt.displayAlignment & Qt::AlignBottom)
y += vDelta;
if (opt.displayAlignment & Qt::AlignHCenter)
x += hDelta / 2;
else if (opt.displayAlignment & Qt::AlignRight)
x += hDelta;
painter->drawPixmap(x, y, pm);
}
示例14: cursor
MainWindow::MainWindow()
{
QMenu *fileMenu = new QMenu(tr("&File"));
QAction *saveAction = fileMenu->addAction(tr("&Save..."));
saveAction->setShortcut(tr("Ctrl+S"));
QAction *quitAction = fileMenu->addAction(tr("E&xit"));
quitAction->setShortcut(tr("Ctrl+Q"));
menuBar()->addMenu(fileMenu);
editor = new QTextEdit();
QTextCursor cursor(editor->textCursor());
cursor.movePosition(QTextCursor::Start);
QTextFrame *mainFrame = cursor.currentFrame();
QTextCharFormat plainCharFormat;
QTextCharFormat boldCharFormat;
boldCharFormat.setFontWeight(QFont::Bold);
/* main frame
//! [0]
QTextFrame *mainFrame = cursor.currentFrame();
cursor.insertText(...);
//! [0]
*/
cursor.insertText("Text documents are represented by the "
"QTextDocument class, rather than by QString objects. "
"Each QTextDocument object contains information about "
"the document's internal representation, its structure, "
"and keeps track of modifications to provide undo/redo "
"facilities. This approach allows features such as the "
"layout management to be delegated to specialized "
"classes, but also provides a focus for the framework.",
plainCharFormat);
//! [1]
QTextFrameFormat frameFormat;
frameFormat.setMargin(32);
frameFormat.setPadding(8);
frameFormat.setBorder(4);
//! [1]
cursor.insertFrame(frameFormat);
/* insert frame
//! [2]
cursor.insertFrame(frameFormat);
cursor.insertText(...);
//! [2]
*/
cursor.insertText("Documents are either converted from external sources "
"or created from scratch using Qt. The creation process "
"can done by an editor widget, such as QTextEdit, or by "
"explicit calls to the Scribe API.", boldCharFormat);
cursor = mainFrame->lastCursorPosition();
/* last cursor
//! [3]
cursor = mainFrame->lastCursorPosition();
cursor.insertText(...);
//! [3]
*/
cursor.insertText("There are two complementary ways to visualize the "
"contents of a document: as a linear buffer that is "
"used by editors to modify the contents, and as an "
"object hierarchy containing structural information "
"that is useful to layout engines. In the hierarchical "
"model, the objects generally correspond to visual "
"elements such as frames, tables, and lists. At a lower "
"level, these elements describe properties such as the "
"style of text used and its alignment. The linear "
"representation of the document is used for editing and "
"manipulation of the document's contents.",
plainCharFormat);
connect(saveAction, SIGNAL(triggered()), this, SLOT(saveFile()));
connect(quitAction, SIGNAL(triggered()), this, SLOT(close()));
setCentralWidget(editor);
setWindowTitle(tr("Text Document Frames"));
}
示例15: convertTable
bool Converter::convertTable( const QDomElement &element )
{
/**
* Find out dimension of the table
*/
int rowCounter = 0;
int columnCounter = 0;
QQueue<QDomNode> nodeQueue;
enqueueNodeList( nodeQueue, element.childNodes() );
while ( !nodeQueue.isEmpty() ) {
QDomElement el = nodeQueue.dequeue().toElement();
if ( el.isNull() )
continue;
if ( el.tagName() == QLatin1String( "table-row" ) ) {
rowCounter++;
int counter = 0;
QDomElement columnElement = el.firstChildElement();
while ( !columnElement.isNull() ) {
if ( columnElement.tagName() == QLatin1String( "table-cell" ) ) {
counter++;
}
columnElement = columnElement.nextSiblingElement();
}
columnCounter = qMax( columnCounter, counter );
} else if ( el.tagName() == QLatin1String( "table-header-rows" ) ) {
enqueueNodeList( nodeQueue, el.childNodes() );
}
}
/**
* Create table
*/
QTextTable *table = mCursor->insertTable( rowCounter, columnCounter );
mCursor->movePosition( QTextCursor::End );
/**
* Fill table
*/
nodeQueue.clear();
enqueueNodeList( nodeQueue, element.childNodes() );
QTextTableFormat tableFormat;
rowCounter = 0;
while ( !nodeQueue.isEmpty() ) {
QDomElement el = nodeQueue.dequeue().toElement();
if ( el.isNull() )
continue;
if ( el.tagName() == QLatin1String( "table-row" ) ) {
int columnCounter = 0;
QDomElement columnElement = el.firstChildElement();
while ( !columnElement.isNull() ) {
if ( columnElement.tagName() == QLatin1String( "table-cell" ) ) {
const StyleFormatProperty property = mStyleInformation->styleProperty( columnElement.attribute( QStringLiteral("style-name") ) );
QTextBlockFormat format;
property.applyTableCell( &format );
QDomElement paragraphElement = columnElement.firstChildElement();
while ( !paragraphElement.isNull() ) {
if ( paragraphElement.tagName() == QLatin1String( "p" ) ) {
QTextTableCell cell = table->cellAt( rowCounter, columnCounter );
// Insert a frame into the cell and work on that, so we can handle
// different parts of the cell having different block formatting
QTextCursor cellCursor = cell.lastCursorPosition();
QTextFrameFormat frameFormat;
frameFormat.setMargin( 1 ); // TODO: this shouldn't be hard coded
QTextFrame *frame = cellCursor.insertFrame( frameFormat );
QTextCursor frameCursor = frame->firstCursorPosition();
frameCursor.setBlockFormat( format );
if ( !convertParagraph( &frameCursor, paragraphElement, format ) )
return false;
} else if ( paragraphElement.tagName() == QLatin1String( "list" ) ) {
QTextTableCell cell = table->cellAt( rowCounter, columnCounter );
// insert a list into the cell
QTextCursor cellCursor = cell.lastCursorPosition();
if ( !convertList( &cellCursor, paragraphElement ) ) {
return false;
}
}
paragraphElement = paragraphElement.nextSiblingElement();
}
columnCounter++;
}
columnElement = columnElement.nextSiblingElement();
}
rowCounter++;
} else if ( el.tagName() == QLatin1String( "table-column" ) ) {
const StyleFormatProperty property = mStyleInformation->styleProperty( el.attribute( QStringLiteral("style-name") ) );
const QString tableColumnNumColumnsRepeated = el.attribute( QStringLiteral("number-columns-repeated"), QStringLiteral("1") );
int numColumnsToApplyTo = tableColumnNumColumnsRepeated.toInt();
//.........这里部分代码省略.........