Lösen Sie schnell das Problem der chinesischen Eingabemethode unter Linux

Lösen Sie schnell das Problem der chinesischen Eingabemethode unter Linux

Hintergrund: Ich arbeite derzeit an Funktionen für die Asset-Berichterstattung und muss chinesische Eingaben unterstützen. Wenn das Programm mit einer normalen Verknüpfung gestartet wird, gibt es kein Problem. Beim Upgrade oder bei der Deinstallation und Neuinstallation wird es jedoch mit su usr -C XX.sh gestartet. Es ist unmöglich, die Umgebungsvariablen des Benutzers abzurufen, wenn es als Root gestartet wird. Beginnen wir unser Abenteuer. . .

Erkundung: Durch Vergleichen der Umgebungsvariablen von Root und Benutzer durch Exportdruck und Suchen nach Problemen im Zusammenhang mit Eingabemethoden unter Linux in Google habe ich die Variable QT_IM_MODULE gefunden. Verschiedene Systeme können ibus oder fctix oder andere Variablen usw. haben.

Lösung: Da das Programm bei der ersten Installation manuell vom Benutzer gestartet werden muss, müssen wir den Code hinzufügen, um den Wert von QT_IM_MODULE unter dem aktuellen Benutzer abzurufen, ihn dann in eine globale Datei schreiben und dann den Wert dieser globalen Variable im Hook-Skript abrufen. Legen Sie im Startskript einfach export QT_IM_MODULE=XX fest. Der Code wird unten angezeigt.

Der Code hat Folgendes zu sagen:

1. Code, der dem Programm hinzugefügt werden muss:

//Globale Umgebungsvariable für chinesische Eingabemethoden hinzufügen QString qstrInputMethod = path;
    qstrInputMethod += "/.local/sdforcnos/sdforcnos.inputMethod";
    char *pInputEnv = getenv("QT_IM_MODULE");
    wenn(pInputEnv != NULL)
    {
      QString qstrCMD = QString("echo %1 > %2").arg(pInputEnv).arg(qstrInputMethod);
      system(qstrCMD.toStdString().c_str());
      printf("---%s-----------QT_IM_MODULE=%s\n", qstrCMD.toStdString().c_str(), pInputEnv);
    }

2. Vom Hook-Skript benötigter Code:

 wenn [ -e "/home/${user}/.local/sdforcnos/sdforcnos.inputMethod" ];dann
     inputEnv=`cat /home/${user}/.local/sdforcnos/sdforcnos.inputMethod`
     wenn [ ! -z "$inputEnv" ]; dann
       exportiere QT_IM_MODULE="$inputEnv"
     fi
    fi
    su $user -c "/usr/bin/startsd &"

Zusammenfassen

Dies ist das Ende dieses Artikels über Probleme mit chinesischen Eingabemethoden unter Linux. Weitere relevante Inhalte zu Problemen mit chinesischen Eingabemethoden unter Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Trash-Cli: Befehlszeilen-Papierkorb-Tool unter Linux
  • 101 Skripte zum Erstellen eines Linux-Papierkorbskripts
  • Linux verwendet die suid vim.basic-Datei, um eine Rechteausweitung zu erreichen
  • Verwenden Sie MySQL, um Port 3306 zu öffnen/ändern und Zugriffsberechtigungen in der Ubuntu/Linux-Umgebung zu öffnen
  • Detaillierte Erläuterung der Befehle zum Lesen und Schreiben von Remotedateien mit Vim im Linux-System
  • Lösung für den Absturz der Grafikkarte auf Linux-Servern
  • Detaillierte Erläuterung des Implementierungsprozesses und der Verwendung des Linux-Papierkorbmechanismus

<<:  Vue implementiert das Hinzufügen von Wasserzeichen zu hochgeladenen Bildern

>>:  Lösung für das Problem, dass Navicat keine Remoteverbindung zum MySql-Server herstellen kann

Artikel empfehlen

Grafisches Tutorial zur Installation von MySQL 8.0.12

MySQL8.0.12-Installationstutorial, mit allen teil...

Das Phänomen des Margin-Top-Collapses und die spezifische Lösung

Was ist ein Margin-Top-Collaps? Der Margin-Top-Co...

Webdesigner sollten Webseiten unter drei Aspekten optimieren

<br />Mit der zunehmenden Bandbreite werden ...

Implementierung einfacher Tabs mit js

Tab-Auswahlkarten werden auf echten Webseiten seh...

Vue implementiert die Anmeldung mit grafischem Bestätigungscode

In diesem Artikelbeispiel wird der spezifische Co...

Methode zur Wiederherstellung von Betriebs- und Wartungsdaten der MySQL-Datenbank

In den vorherigen drei Artikeln wurden gängige Si...

Sprechen Sie über implizite Konvertierung in MySQL

Im Laufe der Arbeit werden Sie auf viele Fälle im...

Ausführliche Erklärung zu Sitzung und Cookie in Tomcat

Vorwort HTTP ist ein zustandsloses Kommunikations...

Einführung in das Versionsverwaltungstool Rational ClearCase

Rational ClearCase ist ein Tool für das Softwarek...

Detaillierte Erläuterung der Tomcat-Konfigurations- und Optimierungslösungen

Service.xml Die Konfigurationsdatei Server.xml wi...

Lösung für die Inkonsistenz zwischen Crontab-Ausführungszeit und Systemzeit

Vorwort Unter LINUX werden periodische Aufgaben n...