[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    Re: [PyQt] Amharic text and QtLineEdit
From:       "Timothy W. Grove" <tim_grove () sil ! org>
Date:       2018-03-14 8:40:12
Message-ID: 971821cd-01e1-793e-b6e6-aa63fe41a002 () sil ! org
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hello Zachary,

Thank you for your reply and for your solution; it works great! The only 
amendment to your quick test needed was to create a QFont object first 
and then set it:

f = QFont('Kefa')
le.setFont(f)

Best regards,

Tim


On 14/03/2018 00:09, Zachary Scheuren wrote:
> Hi Tim,
>
> I've had this problem before when trying to support multiple scripts 
> and customize them in different ways. In your example since the 
> QLineEdit isn't getting an appropriate font you can do it by 
> explicitly setting a font or setting up appropriate styles for 
> fallback, etc as explained at https://doc.qt.io/qt-5/qfont.html 
> <https://doc.qt.io/qt-5/qfont.html>
>
> For a quick test on macOS I added
>
> le.setFont('Kefa')
>
> and that forced the QLineEdit to use the installed Kefa font. I also 
> tried with 'Noto Sans Ethiopic' and that worked, too.
> It does seem like a bug that the font matching algorithm fails to find 
> a suitable font when you know one exists, but I always just set it 
> myself or gave users the option to use whatever font they wanted.
>
> Hope that helps.
>
> Zachary
>
>
> On Tue, Mar 13, 2018 at 9:31 AM, Timothy W. Grove <tim_grove@sil.org 
> <mailto:tim_grove@sil.org>> wrote:
>
>     Has anyone ever had trouble displaying Amharic text in a
>     QLineEdit, or had similar issues with other scripts to what I'm
>     describing below?
>
>     When typing Amharic text into a QLineEdit on MacOS I'm not seeing
>     the expected text but blocks of horizontal lines in place of each
>     character. If I copy those blocks and paste them into some other
>     (non-pyqt) application the Amharic text appears. Conversely, if I
>     type well-formed Amharic text in another application and
>     copy-and-paste that back into my pyqt application, only those
>     blocks of lines appear.
>
>     Something similar happens under Windows. (I can't repeat this
>     myself, but it's reported by another user) When Amharic is typed
>     blank spaces appear, like typing white text onto a white
>     background. Again, the same results as above for copying and pasting.
>
>     My input method for MacOS is Keyman with SIL-Ethiopic
>     (https://keyman.com/macos/).
>
>     I made a simple example below which only uses a dialog containing
>     one QLineInput, where the problem can be seen.
>
>         /from PyQt5.QtWidgets import QDialog, QApplication, QLineEdit//
>         //
>         //class TestDlg(QDialog)://
>         //    def __init__(self): //
>         //        super(TestDlg, self).__init__()//
>         //        le = QLineEdit(self)//
>         ////
>         //app = QApplication([]) //
>         //dlg = TestDlg()//
>         //if dlg.exec_()://
>         //    pass////
>         //app.exec_()/
>
>         /
>         /
>
>     Not much to go on, but I'm hoping that someone somewhere has seen
>     something like this before.
>
>     Best regards,
>     Tim
>
>
>     _______________________________________________
>     PyQt mailing list PyQt@riverbankcomputing.com
>     <mailto:PyQt@riverbankcomputing.com>
>     https://www.riverbankcomputing.com/mailman/listinfo/pyqt
>     <https://www.riverbankcomputing.com/mailman/listinfo/pyqt>
>
>


[Attachment #5 (text/html)]

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hello Zachary,</p>
    <p>Thank you for your reply and for your solution; it works great!
      The only amendment to your quick test needed was to create a QFont
      object first and then set it:</p>
    <p>f = QFont('Kefa')<br>
      le.setFont(f)</p>
    <p>Best regards,</p>
    <p>Tim<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 14/03/2018 00:09, Zachary Scheuren
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAFBf+HdzdeQLDZfgM757nF6U4PWLE_iGXbwX-MXuVOFqiEJKjg@mail.gmail.com">
      <div dir="ltr"><span
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:no \
rmal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spa \
cing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;wo \
rd-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Hi
  Tim,</span>
        <div
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:no \
rmal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spa \
cing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;wo \
rd-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br>
  </div>
        <div
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:no \
rmal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spa \
cing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;wo \
rd-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">I've
  had this problem before when trying to support multiple
          scripts and customize them in different ways. In your example
          since the QLineEdit isn't getting an appropriate font you can
          do it by explicitly setting a font or setting up appropriate
          styles for fallback, etc as explained at <a
            href="https://doc.qt.io/qt-5/qfont.html" target="_blank"
            style="color:rgb(17,85,204)" \
moz-do-not-send="true">https://doc.qt.io/qt-5/<wbr>qfont.html</a></div>  <div
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:no \
rmal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spa \
cing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;wo \
rd-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br>
  <div>For a quick test on macOS I added</div>
          <div><br>
          </div>
          <div>le.setFont('Kefa') </div>
          <div><br>
          </div>
          <div>and that forced the QLineEdit to use the installed Kefa
            font. I also tried with 'Noto Sans Ethiopic' and that
            worked, too. </div>
          <div>It does seem like a bug that the font matching algorithm
            fails to find a suitable font when you know one exists, but
            I always just set it myself or gave users the option to use
            whatever font they wanted.</div>
          <div><br>
          </div>
          <div>Hope that helps.</div>
          <div><br>
          </div>
          <div>Zachary</div>
        </div>
        <br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Tue, Mar 13, 2018 at 9:31 AM,
          Timothy W. Grove <span dir="ltr">&lt;<a
              href="mailto:tim_grove@sil.org" target="_blank"
              moz-do-not-send="true">tim_grove@sil.org</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div text="#000000" bgcolor="#FFFFFF">
              <p>Has anyone ever had trouble displaying Amharic text in
                a QLineEdit, or had similar issues with other scripts to
                what I'm describing below?</p>
              <p>When typing Amharic text into a QLineEdit on MacOS I'm
                not seeing the expected text but blocks of horizontal
                lines in place of each character. If I copy those blocks
                and paste them into some other (non-pyqt) application
                the Amharic text appears. Conversely, if I type
                well-formed Amharic text in another application and
                copy-and-paste that back into my pyqt application, only
                those blocks of lines appear. <br>
              </p>
              <p>Something similar happens under Windows. (I can't
                repeat this myself, but it's reported by another user)
                When Amharic is typed blank spaces appear, like typing
                white text onto a white background. Again, the same
                results as above for copying and pasting.</p>
              <p>My input method for MacOS is Keyman with SIL-Ethiopic (<a
                  class="m_4022434960405102886moz-txt-link-freetext"
                  href="https://keyman.com/macos/" target="_blank"
                  moz-do-not-send="true">https://keyman.com/macos/</a>).
                <br>
              </p>
              <p>I made a simple example below which only uses a dialog
                containing one QLineInput, where the problem can be
                seen.<br>
              </p>
              <blockquote>
                <p><font size="-2"><i>from PyQt5.QtWidgets import
                      QDialog, QApplication, QLineEdit</i><i><br>
                    </i><i><br>
                    </i><i>class TestDlg(QDialog):</i><i><br>
                    </i><i>    def __init__(self):        </i><i><br>
                    </i><i>        super(TestDlg, self).__init__()</i><i><br>
                    </i><i>        le = QLineEdit(self)</i><i><br>
                    </i><i>        </i><i><br>
                    </i><i>app = QApplication([])        </i><i><br>
                    </i><i>dlg = TestDlg()</i><i><br>
                    </i><i>if dlg.exec_():</i><i><br>
                    </i><i>    pass</i><i> </i><i><br>
                    </i><i>app.exec_()</i></font></p>
                <p><font size="-2"><i><br>
                    </i></font></p>
              </blockquote>
              <p>Not much to go on, but I'm hoping that someone
                somewhere has seen something like this before.</p>
              <p>Best regards,<br>
                Tim<br>
              </p>
            </div>
            <br>
            ______________________________<wbr>_________________<br>
            PyQt mailing list    <a
              href="mailto:PyQt@riverbankcomputing.com"
              moz-do-not-send="true">PyQt@riverbankcomputing.com</a><br>
            <a
              href="https://www.riverbankcomputing.com/mailman/listinfo/pyqt"
              rel="noreferrer" target="_blank" \
moz-do-not-send="true">https://www.<wbr>riverbankcomputing.com/<wbr>mailman/listinfo/pyqt</a><br>
  </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>


[Attachment #6 (text/plain)]

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
https://www.riverbankcomputing.com/mailman/listinfo/pyqt

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic