Cách thay đổi kích thước phông chữ trong hộp thư tự động hoàn thành


2

Ảnh chụp màn hình:

Ảnh chụp màn hình

Tôi có thể cần phải thay đổi một cái gì đó trong gtkrctệp chủ đề , nhưng tôi không thể tìm thấy những gì cần thay đổi để tôi giảm kích thước phông chữ xuống một đơn vị

Chỉ để tham khảo, tôi đã tìm thấy câu hỏi tương tự trên SO (mặc dù đó là về Ubuntu 11.10): Cách thay đổi màu tô sáng trong hộp tự động hoàn thành trong Eclipse , cho thấy ngay cả Eclipse đang sử dụng điều này từ cài đặt hệ thống, nhưng để có phông chữ khó hiểu hơn nhỏ hơn (như tôi muốn vậy)


Ứng dụng nào bạn đang sử dụng?
desgua

đó là cài đặt toàn cầu - trên ảnh chụp màn hình, đó là Geany
zetah

Nếu bạn thay đổi kích thước phông chữ của Gean bằng CTRL + bánh xe chuột, kích thước của kích thước phông chữ trong hộp thả tự động hoàn thành cũng thay đổi. Bạn có muốn thay đổi độc lập với kích thước phông chữ của trình chỉnh sửa không?
thắt lưng

Như đã nói, đó không phải là về Geany, đó là cài đặt hệ thống và nó giống với SciTE hoặc các biên tập viên khác. Tôi muốn hộp thư tự động hoàn thành với phông chữ nhỏ hơn văn bản thông thường, nếu có thể. Giống như calltips, nhưng đối với tôi, dường như calltips có thể tùy chỉnh bởi các biên tập viên trong khi tự động hoàn tất được thiết lập hệ thống
zetah

Câu trả lời:


6

Tôi không tin rằng nó có thể với một sửa đổi gtkrc.

Ngay cả khi bạn thêm mã này vào cuối gtkrc của mình:

style "fontchangetest" {
    font_name = "Sans 20"
}

class "GtkWidget" style "fontchangetest"

Khởi động lại Geany (hoặc bất kỳ ứng dụng GTK2 nào cho vấn đề đó) và rất nhiều widget UI sẽ lấy thuộc tính này, tuy nhiên, trình soạn thảo mã thực tế và danh sách tự động hoàn thành sẽ giữ lại phông chữ được chỉ định bởi Geany.

Tuy nhiên, hãy kiểm tra mã nguồn:

apt-get source geany
cd geany-0.20

Phông chữ cho hộp tự động hoàn thành được xác định trong scintilla / ScintillaBase.cxx, dòng 264:

ac.lb->SetFont(vs.styles[STYLE_DEFAULT].font);

Các SetFontchức năng chỉ được sử dụng cho ListBox autocomplete (xác với ' ack SetFont'), do đó không có hại trong việc thay đổi nó.

Mở scintilla / PlatGTK.cxx, điều hướng đến dòng 2029. Bạn sẽ thấy mã này:

void ListBoxX::SetFont(Font &scint_font) {
    // Only do for Pango font as there have been crashes for GDK fonts
    if (Created() && PFont(scint_font)->pfd) {
        // Current font is Pango font
        gtk_widget_modify_font(PWidget(list), PFont(scint_font)->pfd);
    }
}

Thay thế bằng:

void ListBoxX::SetFont(Font &scint_font) {
    // Only do for Pango font as there have been crashes for GDK fonts
    if (Created() && PFont(scint_font)->pfd) {
        // Current font is Pango font
        PangoFontDescription* pf = pango_font_description_from_string("Sans 6");
        gtk_widget_modify_font(PWidget(list), pf);
    }
}

Rõ ràng bạn có thể thay đổi 'Sans 6' thành bất kỳ phông chữ và kích thước nào bạn thích. Đây là một giải pháp rất khó, tuy nhiên tôi không biết C / C ++ nên có lẽ có một cách thanh lịch hơn để làm điều đó.

Sau đó, bạn có thể:

./configure && make && sudo make install

Để thực hiện biên dịch và cài đặt nhanh (mặc dù vậy, nghiêm túc khuyên bạn nên gỡ bỏ gói geany hiện có trước)

Hoặc cách chính xác hơn:

sudo aptitude install build-essential devscripts ubuntu-dev-tools \
debhelper dh-make diff patch cdbs quilt gnupg fakeroot lintian \
pbuilder piuparts intltool chrpath

debuild
cd ..
sudo dpkg -i geany_0.20-1.1ubuntu1_amd64.deb

Để xây dựng một gói mới bao gồm các thay đổi và sau đó cài đặt nó.


WOW ... câu trả lời tuyệt vời, cảm ơn. Vì vậy, tất cả các trình soạn thảo của tôi hiển thị cùng một hộp tự động hoàn thành vì tất cả chúng đều sử dụng cùng một thành phần Scintilla. Xây dựng lại SciTE chẳng hạn là giải pháp tốt, dù sao tôi cũng muốn thêm bản vá tùy chỉnh khác
zetah
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.