python字型設定對話方塊 字型對話方塊的使用

2021-10-12 13:33:28 字數 1917 閱讀 4288

字型對話方塊的使用

本節,我們將學習使用字型對話方塊為選中的文字設定不同的字型和樣式。

在本應用中,我們將使用乙個text edit元件和乙個push button 元件。當單擊這個按鈕時,將開啟這個字型對話框架。從對話方塊中選擇的字型和樣式將被應用在text edit元件中的文字上。

本節,我們將使用qfontdialog類顯示乙個對話方塊元件,用於選擇字型。

如何去做...

讓我們基於dialog without buttons模板建立乙個應用程式,步驟如下:

1、拖動乙個push button和乙個text edit元件放在窗體上。

2、將push button元件的文字屬性設定為choose font。

3、將push button元件的objectname屬性設定為pushbuttonfont。

4、將應用儲存為demofontdialog.ui。

5、執行以上步驟後,應用介面的顯示如下圖所示:

使用者介面是使用qt designer建立並儲存為.ui格式的xml檔案。使用pyuic5命令將這個xml檔案轉換為python**。生成的python指令碼檔名為demofontdialog.py,可以參考本書源**。這個demofontdialog.py指令碼將用於另乙個python檔案的標頭檔案匯入,並呼叫顯示使用者介面。

6、建立另乙個名為callfontdialog.pyw的python檔案,並匯入demofontdialog.py**:

import sys

from demofontdialog import *

class myform(qdialog):

def __init__(self):

super().__init__()

self.ui = ui_dialog()

self.ui.setupui(self)

self.ui.pushputtonfont.clicked.connect(self.changefont)

self.show()

def changefont(self):

font, ok = qfontdialog.getfont()

if ok:

self.ui.textedit.setfont(font)

if __name__=="__main__":

w = myform()

w.show()

它是如何工作的...

在callfontdialog.pyw檔案中,你可以看到按鈕的click()事件與changefont()方法關聯;也就是說,當使用者單擊了choose font按鈕時,就用呼叫changefont()方法。changefont()方法又呼叫qfontdialog類中的getfont()方法,這個方法會開啟乙個對話方塊並顯示不同的字型,字型樣式,大小和效果。當選擇了乙個字型,字型樣式,大小和效果後,文字效果就會在sample框中顯示出來。當選擇了乙個期望的字型、字型樣式、大小和效果後,當使用者單擊ok按鈕,當前選擇的字型會賦值給font變數。因此,textedit類中的setfont()方法就會將選擇的字型應用到text edit元件中顯示的文字上。

執行應用,你看到了乙個按鈕,即change font 元件,和乙個text edit元件,如下圖所示:

為了看到從字型對話方塊中選擇字型後的影響,你需要在text edit中輸入一些文字,如下圖所示:

當選擇了change font按鈕,將開啟字型對話方塊,如下圖所示。你就能在對話方塊的最左側框中顯示的不同的字型。中間的框顯示了不同的字型樣式,它可以使用你文字加粗、傾斜、加粗和傾斜和正常。最右邊的框中顯示了不同的大小。在對話方塊底部,你可以看到不同的選擇框,可以使用你的文字顯示下劃線、刪除線等樣式。在任可框中選擇相應的字型和樣式都會在sample框中預覽相應的文本校果。選擇好對應的字型、樣式和大小後,單擊ok按鈕關閉對話方塊:

選擇好字型樣式後將在text edit元件的文字上看到相應的效果,如下圖所示:

用字型選擇對話方塊改變字型

我看了一本比較舊的書叫 gtk gnome 程式設計 裡面講了乙個例子,怎樣來使用字型選擇對話方塊。由於書的比較舊,與最新的gtk 不對應,所以這個例子根本就不能執行。原因是,在書中提到了gtksyle這個結構,裡面有乙個項 struct gtkstyle gdkfont font 但是在最新版的g...

字型選擇對話方塊QFontDialog

qfontdialog控制項是乙個常用的字型選擇對話方塊,可以讓使用者選擇所顯示文字的字型大小大小 樣式和格式。方法描述 setwindowtitle 設定對話方塊標題 setwindowmodality import sys from pyqt5.qtcore import from pyqt5....

051字型對話方塊

allowscriptchange 獲取或設定乙個值,該值指示使用者能否更改 指令碼 組合框中指定的字符集,以顯示除了當前所顯示字符集以外的字符集。allowsimulations 獲取或設定乙個值,該值指示對話方塊是否允許圖形裝置介面 gdi 字型模擬。allowvectorfonts 獲取或設定...