Lớp FormattedDocument duy trì thông tin kiểu dáng cho các ký tự riêng lẻ trong văn bản, thay vì một kiểu duy nhất cho toàn bộ tài liệu. Ví dụ, các kiểu có thể được truy cập và sửa đổi theo tên
Bên trong, các kiểu ký tự được mã hóa theo độ dài chạy trên văn bản tài liệu;
Theo quan điểm của tài liệu, không có tên kiểu được xác định trước. nó chỉ đơn giản ánh xạ tên và phạm vi ký tự thành các giá trị Python tùy ý. Chính các lớp TextLayout diễn giải thông tin kiểu dáng này; . Các tên kiểu không được nhận dạng sẽ bị bố cục bỏ qua -- bạn có thể sử dụng kiến thức này để lưu trữ dữ liệu bổ sung cùng với văn bản tài liệu [ví dụ: URL phía sau siêu liên kết]
pyglet cung cấp hai định dạng để giải mã các tài liệu được định dạng từ văn bản thuần túy. Chúng rất hữu ích để tải các tài liệu đã chuẩn bị sẵn, chẳng hạn như màn hình trợ giúp. Tại thời điểm này, không có phương tiện để lưu [mã hóa] tài liệu được định dạng
Định dạng văn bản được phân bổ là mã hóa dành riêng cho pyglet có thể mô tả chính xác bất kỳ FormattedDocument nào. Bạn phải sử dụng mã hóa này để truy cập tất cả các tính năng của bố cục văn bản pyglet. Để biết mã hóa dễ truy cập hơn nhưng ít tính năng hơn, hãy xem mã hóa, được mô tả bên dưới
Ví dụ sau đây cho thấy một tài liệu được mã hóa văn bản được phân bổ đơn giản
Chapter 1 My father's family name being Pirrip, and my Christian name Philip, my infant tongue could make of both names nothing longer or more explicit than Pip. So, I called myself Pip, and came to be called Pip. I give Pirrip as my father's family name, on the authority of his tombstone and my sister - Mrs. Joe Gargery, who married the blacksmith. As I never saw my father or my mother, and never saw any likeness of either of them [for their days were long before the days of photographs], my first fancies regarding what they were like, were unreasonably derived from their tombstones.
Các dòng mới bị bỏ qua, trừ khi hai dòng được thực hiện liên tiếp, biểu thị ngắt đoạn. Có thể buộc ngắt dòng bằng lệnh \\
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.
Ngắt dòng cũng bị ép buộc khi văn bản được thụt lề bằng một hoặc nhiều khoảng trắng hoặc tab, điều này hữu ích cho việc sắp chữ mã
The following paragraph has hard line breaks for every line of code: import pyglet window = pyglet.window.Window[] pyglet.app.run[]
Văn bản có thể được tạo kiểu bằng cách sử dụng thẻ thuộc tính
This sentence makes a {bold True}bold{bold False} statement.
Thẻ thuộc tính bao gồm tên thuộc tính [trong ví dụ này, in đậm] theo sau là một bool Python, int, float, string, tuple hoặc list
Không giống như hầu hết các tài liệu có cấu trúc như HTML, văn bản được gán không có khái niệm về "kết thúc" của một kiểu; . Điều này tương ứng chính xác với biểu diễn được sử dụng bởi FormattedDocument trong nội bộ
Một số ví dụ khác sau đây
{font_name 'Times New Roman'}{font_size 28}Hello{font_size 12}, {color [255, 0, 0, 255]}world{color [0, 0, 0, 255]}!
[Ví dụ này sử dụng 28pt Times New Roman cho từ "Xin chào" và văn bản màu đỏ 12pt cho từ "thế giới"]
Các kiểu đoạn văn có thể được đặt bằng cách đặt trước tên kiểu với một dấu chấm [. ]. Điều này đảm bảo phạm vi kiểu bao gồm chính xác đoạn văn
{.margin_left "12px"}This is a block quote, as the margin is inset. {.margin_left "24px"}This paragraph is inset yet again.
Văn bản được phân bổ có thể được tải dưới dạng chuỗi Unicode. Ngoài ra, bất kỳ ký tự nào cũng có thể được chèn với điểm mã Unicode của nó ở dạng số, hoặc ở dạng thập phân
Các hoạt động định dạng được mô tả ở đây [toán tử %] thể hiện nhiều điểm kỳ quặc dẫn đến một số lỗi phổ biến [. ]. Sử dụng phiên bản mới hơn [. ] giúp tránh những lỗi này. Những lựa chọn thay thế này cũng cung cấp các cách tiếp cận mạnh mẽ, linh hoạt và có thể mở rộng hơn để định dạng văn bản
% nhà điều hành
Thích chuỗi ký tự hơn
Đối với mã mới, sử dụng hoặc [Python 3. 6+] trên toán tử
>>> num = 5
>>> 'I have %d apples' % num
# "I have 5 apples"
2 được khuyến nghị mạnh mẽ>>> name = 'Pete'
>>> 'Hello %s' % name
# "Hello Pete"
Chúng ta có thể sử dụng trình xác định định dạng
>>> num = 5
>>> 'I have %d apples' % num
# "I have 5 apples"
3 để chuyển đổi giá trị int thành chuỗi>>> num = 5
>>> 'I have %d apples' % num
# "I have 5 apples"
str. định dạng
Python 3 đã giới thiệu một cách mới để thực hiện định dạng chuỗi mà sau này được chuyển ngược lại sang Python 2. 7. Điều này làm cho cú pháp định dạng chuỗi thường xuyên hơn
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.0
Định dạng String Literals hoặc f-Strings
Nếu bạn đang sử dụng Python 3. 6+, chuỗi
>>> num = 5
>>> 'I have %d apples' % num
# "I have 5 apples"
4 là cách được đề xuất để định dạng chuỗiTừ
Một chuỗi ký tự chuỗi được định dạng hoặc chuỗi f là một chuỗi ký tự có tiền tố là `f` hoặc `F`. Các chuỗi này có thể chứa các trường thay thế, là các biểu thức được phân tách bằng dấu ngoặc nhọn {}. Trong khi các chuỗi ký tự khác luôn có giá trị không đổi, các chuỗi được định dạng thực sự là các biểu thức được đánh giá trong thời gian chạy
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.2
Thậm chí có thể thực hiện số học nội tuyến với nó
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.3
Chuỗi f nhiều dòng
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.4
Trình xác định >>> num = 5
>>> 'I have %d apples' % num
# "I have 5 apples"
5
>>> num = 5
>>> 'I have %d apples' % num
# "I have 5 apples"
Điều này sẽ in biểu thức và giá trị của nó
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.6
Thêm khoảng trắng hoặc ký tự
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.7
định dạng chữ số
Thêm dấu phân cách hàng nghìn
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.8
làm tròn
This is the way the world ends \\ This is the way the world ends \\ This is the way the world ends \\ Not with a bang but a whimper.9
Hiển thị dưới dạng Phần trăm
>>> num = 5
>>> 'I have %d apples' % num
# "I have 5 apples"
0