سؤال

تصميم UIS مع QtCreator تحت النوافذ، وتنقل نفسه .ui ملف تحت ماكوسكس يؤدي إلى تصاميم مع بعض أجزاء النص صغير جدا - في الواقع، HTML تلك. يبدو أنه يأتي من حقيقة ذلك يستخدم QtCreator. pt بدلا من px كوحدة حجم النص، وأن دقة الشاشة الافتراضية مختلفة تماما تحت النوافذ وماكوسكس.

هل هناك أي سبب لم أتصل إلى نتائج أكثر اتساقا؟ بصرف النظر عن تحرير كل pt إلى px, ، هل يوجد أي الحل البديل?

شكرا.

هل كانت مفيدة؟

المحلول

كقاعدة عامة، يجب عليك تحديد أحجام الخطوط للتحكم يدويا في مصمم / منشئ QT لأن هذا يؤدي إلى البرولز لديك. سبب عدم التناقض هو حقيقة أن المنصات المختلفة تستخدم إعدادات DPI المختلفة (96 نقطة في البوصة على نظام التشغيل Windows مقابل 72 نقطة في البوصة على Mac OS X). هذا يؤدي إلى عرض الخطوط بأحجام مختلفة.

أيضا، ذكرت أتش تي أم أل. أفترض أنك قد حددت بعض نص HTML في QTextEditمثل القطعة باستخدام المحرر المدمج. عند تحديد حجم الخط هناك، سينتج Creator Qt بعض HTML مثل هذا:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans'; font-size:11pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hello World</p></body></html>

كما ترون، فإنه يحدد بعض font-size السمات، وهو أمر سيء حقا. حلا بسيطا وسهلا لهذه الكيز هو إزالة style= السمات تماما. هذا يسبب QTextEdit لاستخدام خط التطبيق الافتراضي بدلا من ذلك (الذي يجب أن يكون جيدا على جميع المنصات):

<html><head></head><body><p>Hello World</p></body></html>

كخضورة، هذا هو أكثر وضيقا بكثير للمترجمين، لأنهم لا يتعين عليهم القتال من خلال جميع CSS عديمة الفائدة.

لسوء الحظ، لا يدعم QTextEdit QT مواصفات حجم الخط "في المئة" (فقط PX و PT). إذا فعل ذلك، فيمكنك استخدام شيء مثل "90٪" لجعل النص أصغر من الخط الافتراضي بينما لا يزال قيد التشغيل في الجانب الآمن.

سيكون خيار آخر هو QWebView، والتي تجعل قابلة للتحرير. هذا يسمح بتنسيق النص الجيد أثناء وجود مجموعة فرعية كاملة CSS. ولكن قد يكون هذا مبالغة.

امل ان يساعد!

نصائح أخرى

هل يجب عليك ضبط خصائص النص فيك .ui الملفات؟ عادة عند ضبط خاصية النص من عنصر واجهة مستخدم ثم يستبدل UIC خط تماما من هذه القطعة مع شيء يخلقه من نقطة الصفر. إذا قمت بتحريرها على Windows، فسيكون الخط يحتوي على اسم نوافذ متعقب قد يتسبب في مشاكل في جهاز Mac.

ما أقوم به عادة ما أفعله هو عدم لمس الخطوط الموجودة في المصمم بحيث تحصل الحاجيات على خطوطها الافتراضية التي تبدو جيدة وعادة ما تتغيرها في كتور القطعة مثل:

QFont f = ui.someLabel->font(); // get the current (default) font from the widget
f.setBold(true); // change only what's need to be changed
ui.someLabel->setFont(f); 
      // set the new and impreved font back to where it came from

بهذه الطريقة يمكنك تجنب العبث بأي شيء محدد منصة. إذا كان التغيير الخاص بك هو في الواقع منصة محددة، فيمكنك اختيار الشخص المناسب باستخدام #ifdef Q_OS_WIN32 أو #ifdef Q_OS_MAC

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top