使用 PyQt6 切換字元格式
Feb 09, 2024 pm 06:57 PM我正在編寫一個自訂文字處理器作為一個業餘愛好項目。我正在使用 python 和 pyqt6。
我寫了以下內容。目的是,如果我選擇一些文字並應用粗體格式(例如,點擊“ctrl-b”),它將切換格式。具體來說,如果所有選定的文字都是粗體,則應刪除粗體格式。否則,它將套用粗體格式。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
但是,它不會刪除粗體格式。
例如,在句子“this is a test”中,如果我選擇“is a”並應用粗體格式,我會得到“this is a test”,其中“is a” “適當大膽。然而,選擇到位後,如果我點擊“ctrl-b”,它仍然保持粗體。如果我取消選擇第一個或最後一個字符,粗體切換將按預期工作。(我嘗試過反轉if /else 邏輯,但也失敗了)。
我錯過了什麼?
更新:我在https://gist.github.com/ovid/65936985c6838c0220620cf40ba935fa 新增了一個有效的最小測試案例
#正確答案
######################################## #setboldtext### 函數的問題在於它使用###self.texteditor.currentcharformat().fontweight()### 檢查粗體狀態,這僅反映當前遊標位置處字元的格式,而不是整個選定文本的格式。如果您的遊標位於所選內容的開頭或結尾,它可能無法準確表示整個所選範圍的格式。 ### ###因此,我使用現有的遊標,並根據需要進行調整以檢查格式,並在 ###setfontweight()### 上直接套用新的字體粗細。 ### ###現在看起來像這樣:### ######更新的程式碼:#######
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
以上是使用 PyQt6 切換字元格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)