QT 类及其实现效果(4)--字体设置
2013-01-01 22:48
543 查看
字体选择条
fontBox = new QFontComboBox(toolBar);
fontBox->setFontFilters(QFontComboBox::ScalableFonts);
颜色选择条:
void Palette::fillColorList(QComboBox * combobox)
{
QStringList colorList = QColor::colorNames();
QString color;
foreach(color,colorList)
{
QPixmap pix(QSize(70,20));
pix.fill(QColor(color));
combobox->addItem(QIcon(pix),NULL);
combobox->setIconSize(QSize(70,20));
combobox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
}
}
字体大小选择条:
QFontDatabase db;
foreach(int size, db.standardSizes())
{
sizeBox->addItem(QString::number(size));
}
字体相关设置
字体
void FontSet::slotFont(QString f)
{
QTextCharFormat fmt;
fmt.setFontFamily(f);
mergeFormat(fmt);
}
大小
void FontSet::slotSize(QString num)
{
QTextCharFormat fmt;
fmt.setFontPointSize(num.toFloat());
mergeFormat(fmt);
}
粗体
void FontSet::slotBold()
{
QTextCharFormat fmt;
fmt.setFontWeight(boldBtn->isChecked()? QFont::Bold : QFont::Normal);
mergeFormat(fmt);
}
斜体
void FontSet::slotItalic()
{
QTextCharFormat fmt;
fmt.setFontItalic(italicBtn->isChecked());
mergeFormat(fmt);
}
底划线
void FontSet::slotUnder()
{
QTextCharFormat fmt;
fmt.setFontUnderline(underBtn->isChecked());
mergeFormat(fmt);
}
字体颜色
void FontSet::slotColor()
{
QColor color = QColorDialog::getColor (Qt::red,this);
if(color.isValid())
{
QTextCharFormat fmt;
fmt.setForeground(color);
mergeFormat(fmt);
}
}
// 设置光标的选区,使格式作用于选区内的字符,若没有选区则作用于光标所在处的字符
void FontSet::mergeFormat(QTextCharFormat format)
{
QTextCursor cursor = text->textCursor();
if (!cursor.hasSelection())
cursor.select(QTextCursor::WordUnderCursor);
cursor.mergeCharFormat(format);
text->mergeCurrentCharFormat(format);
}
调用QTextCursor的mergeCharFormat()函数把参数format所表示的格式
应用到光标所在处的字符上
调用QTextEdit的mergeCurrentCharFormat()函数把格式应用到选区内的所有字符上。
QTextEdit对象的光标所在的位置字体改变时,会发射currentCharFormatChanged()信号
void FontSet::slotCurrentFormatChanged(const QTextCharFormat &fmt)
{
fontBox->setCurrentIndex(fontBox->findText(fmt.fontFamily()));
sizeBox->setCurrentIndex(sizeBox->findText(QString::number(fmt.fontPointSize())));
boldBtn->setChecked(fmt.font().bold());
italicBtn->setChecked(fmt.fontItalic());
underBtn->setChecked(fmt.fontUnderline());
}
本文来源:http://blog.csdn.net/yongan1006/article/details/7690686
fontBox = new QFontComboBox(toolBar);
fontBox->setFontFilters(QFontComboBox::ScalableFonts);
颜色选择条:
void Palette::fillColorList(QComboBox * combobox)
{
QStringList colorList = QColor::colorNames();
QString color;
foreach(color,colorList)
{
QPixmap pix(QSize(70,20));
pix.fill(QColor(color));
combobox->addItem(QIcon(pix),NULL);
combobox->setIconSize(QSize(70,20));
combobox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
}
}
字体大小选择条:
QFontDatabase db;
foreach(int size, db.standardSizes())
{
sizeBox->addItem(QString::number(size));
}
字体相关设置
字体
void FontSet::slotFont(QString f)
{
QTextCharFormat fmt;
fmt.setFontFamily(f);
mergeFormat(fmt);
}
大小
void FontSet::slotSize(QString num)
{
QTextCharFormat fmt;
fmt.setFontPointSize(num.toFloat());
mergeFormat(fmt);
}
粗体
void FontSet::slotBold()
{
QTextCharFormat fmt;
fmt.setFontWeight(boldBtn->isChecked()? QFont::Bold : QFont::Normal);
mergeFormat(fmt);
}
斜体
void FontSet::slotItalic()
{
QTextCharFormat fmt;
fmt.setFontItalic(italicBtn->isChecked());
mergeFormat(fmt);
}
底划线
void FontSet::slotUnder()
{
QTextCharFormat fmt;
fmt.setFontUnderline(underBtn->isChecked());
mergeFormat(fmt);
}
字体颜色
void FontSet::slotColor()
{
QColor color = QColorDialog::getColor (Qt::red,this);
if(color.isValid())
{
QTextCharFormat fmt;
fmt.setForeground(color);
mergeFormat(fmt);
}
}
// 设置光标的选区,使格式作用于选区内的字符,若没有选区则作用于光标所在处的字符
void FontSet::mergeFormat(QTextCharFormat format)
{
QTextCursor cursor = text->textCursor();
if (!cursor.hasSelection())
cursor.select(QTextCursor::WordUnderCursor);
cursor.mergeCharFormat(format);
text->mergeCurrentCharFormat(format);
}
调用QTextCursor的mergeCharFormat()函数把参数format所表示的格式
应用到光标所在处的字符上
调用QTextEdit的mergeCurrentCharFormat()函数把格式应用到选区内的所有字符上。
QTextEdit对象的光标所在的位置字体改变时,会发射currentCharFormatChanged()信号
void FontSet::slotCurrentFormatChanged(const QTextCharFormat &fmt)
{
fontBox->setCurrentIndex(fontBox->findText(fmt.fontFamily()));
sizeBox->setCurrentIndex(sizeBox->findText(QString::number(fmt.fontPointSize())));
boldBtn->setChecked(fmt.font().bold());
italicBtn->setChecked(fmt.fontItalic());
underBtn->setChecked(fmt.fontUnderline());
}
本文来源:http://blog.csdn.net/yongan1006/article/details/7690686
相关文章推荐
- QT 类及其实现效果(4)--字体设置
- QT 类及其实现效果(7)--坐标,svg,alpha
- QT 类及其实现效果(5)--QTextEdit排版
- QT 类及其实现效果(8)--橡皮筋线,Graphics view
- QT 类及其实现效果(6)--画图
- QT 类及其实现效果(1)--标准对话框与多文档布局
- Android UI设计系列之HTML标签实现TextView设置中文字体加粗效果(6)
- QT 类及其实现效果(8)--橡皮筋线,Graphics view
- QT 类及其实现效果(3)--启动画面与图像变换
- QT 类及其实现效果(2)--QPalette和扩展对话框
- Qt设置背景色,按钮添加图片,实现三态,label添加图片,设置字体大小,颜色等基本操作
- 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果
- UIScrollView实现图片轮播器及其无限循环效果
- QT设置字体与颜色
- jquery实现标题字体变换的滑动门菜单效果
- Qt怎么设置字体
- Qt使用QGraphicsView实现滑动窗体效果
- Qt应用程序中设置字体
- Qt qlabel 设置字体、大小、加粗等
- cocos2d 各种字体名称及其效果