PyQt例項3 設定字型,字型大小等格式屬性

2021-06-21 01:05:49 字數 4119 閱讀 1310

本例項實現了在工具欄上設定字型,字型大小大小,加粗,斜體,下劃線以及字型顏色等格式屬性的功能,**如下:

# -*- coding: utf-8 -*-

from pyqt4.qtgui import *

from pyqt4.qtcore import *

import sys

qtextcodec.setcodecfortr(qtextcodec.codecforname("utf8"))

class mainwindow(qmainwindow):

def __init__(self,parent=none):

super(mainwindow,self).__init__(parent)

self.setwindowtitle(self.tr("設定字型,字型大小等格式屬性"))

self.text = qtextedit()

self.setcentralwidget(self.text);

#字型self.*******=self.add*******("font")

self.label1 = qlabel(self.tr("字型:"))

self.fontbox = qfontcombobox()

self.fontbox.setfontfilters(qfontcombobox.scalablefonts);

self.*******.addwidget(self.label1)

self.*******.addwidget(self.fontbox)

#字型大小self.label2 = qlabel(self.tr("數字:"))

self.sizebox = qcombobox()

#print dir(self.sizebox)

self.*******.addwidget(self.label2)

self.*******.addwidget(self.sizebox)

self.db = qfontdatabase()

for i in self.db.standardsizes():

self.sizebox.additem(qstring.number(i))

self.*******.addseparator();

#加粗 、斜體、下劃線、顏色

self.boldbtn = qtoolbutton()

self.boldbtn.seticon(qicon("image/bold.png"))

self.boldbtn.setcheckable(true)

self.*******.addwidget(self.boldbtn)

self.italicbtn = qtoolbutton()

self.italicbtn.seticon(qicon("image/italic.png"))

self.italicbtn.setcheckable(true)

self.*******.addwidget(self.italicbtn)

self.underbtn = qtoolbutton()

self.underbtn.seticon(qicon("image/underline.png"))

self.underbtn.setcheckable(true)

self.*******.addwidget(self.underbtn)

self.*******.addseparator()

self.colorbtn = qtoolbutton()

self.colorbtn.seticon(qicon("image/color.png"))

self.*******.addwidget(self.colorbtn)

#訊號和槽函式

self.fontbox.activated.connect(self.slotfont)

self.sizebox.activated.connect(self.slotsize)

self.boldbtn.clicked.connect(self.slotbold)

self.italicbtn.clicked.connect(self.slotitalic)

self.underbtn.clicked.connect(self.slotunder)

self.colorbtn.clicked.connect(self.slotcolor)

self.text.currentcharformatchanged.connect(self.slotcurrentformatchanged)

self.fmt = qtextcharformat()

def slotfont(self):

self.f = self.fontbox.currentfont().family()

self.fmt.setfontfamily(self.f)

self.cursor = self.text.textcursor()

if(self.cursor.hasselection() is false):

self.cursor.select(qtextcursor.wordundercursor)

self.cursor.mergecharformat(self.fmt)

self.text.mergecurrentcharformat(self.fmt)

def slotsize(self):

self.num = self.sizebox.currenttext()

self.fmt.setfontpointsize(self.num.tofloat()[0])

self.text.mergecurrentcharformat(self.fmt)

def slotbold(self):

if self.boldbtn.ischecked():

self.fmt.setfontpointsize(qfont.bold)

else:

self.fmt.setfontpointsize(qfont.normal)

self.text.mergecurrentcharformat(self.fmt)

def slotitalic(self):

if self.italicbtn.ischecked():

if self.fmt.fontitalic() is false:

self.fmt.setfontitalic(true)

else:

self.fmt.setfontitalic(false)

self.text.mergecurrentcharformat(self.fmt)

def slotunder(self):

self.fmt.setfontunderline(self.underbtn.ischecked())

self.text.mergecurrentcharformat(self.fmt)

def slotcolor(self):

self.color = qcolordialog.getcolor(qt.red)

if(self.color.isvalid()):

self.fmt.setforeground(self.color)

self.text.mergecurrentcharformat(self.fmt)

def slotcurrentformatchanged(self):

self.fontbox.setcurrentindex(self.fontbox.findtext(self.fmt.fontfamily()))

self.sizebox.setcurrentindex(self.sizebox.findtext(qstring.number(self.fmt.fontpointsize())))

self.boldbtn.setchecked(self.fmt.font().bold())

self.italicbtn.setchecked(self.fmt.fontitalic())

self.underbtn.setchecked(self.fmt.fontunderline())

main=mainwindow()

main.show()

Latex字型字型大小設定

導言區 documentclass 12pt book,report,letter 通過文件類來改變文件結構型別 usepackage 使用中文注意 ctex巨集包 utf 8 xelatex newcommand 正文區 文稿區 begin 正文區有且僅有乙個document 字型族設定 羅馬字型...

關於字型大小和字型的設定

1.問題 css檔案中已設定了標籤的屬性font family 微軟雅黑 但是字型的顯示的效果卻是宋體,檢視一下網頁源 發現設定的字型為亂碼。亂碼顯示如font family 2.解決方法 字型設定不要用中文 如font family 微軟雅黑 而使用字型的unicode編碼 如font famil...

latex字型字型大小設定學習筆記

導言區 documentclass 10pt 文件類引數可以控制normalsize的大小,可以進行設定,一般只有10 11 12pt usepackage latex的思想是格式與內容的分離,不建議在文件中直接使用大量命令,用newcommand命令定義乙個新的命令以執行相關的操作。newcomm...