0

そこで、Qt を使用してテキスト エディターを作成しています。現在、「テキストの書式設定」というダイアログを開くボタンがあります。いくつかのドロップダウンリストからいくつかのテキスト属性を選択すると、テキストがどのように見えるかを示す「フォント」と呼ばれるメモ帳のダイアログのように機能するようにしたいと思います。現在、フォント スタイル、フォントの色、フォント サイズを選択してプレビューを表示すると、ダイアログのボックスにテキストがどのように表示されるかが表示されます。ただし、強調表示されたテキストまたは入力しようとしているテキストを変更することになっている「OK」というボタンがありますが、それらの変更をメインウィンドウに表示する方法がわかりません。。ui ファイルは非公開であり、既に作成された多くの関数とポインターはすべての ui ファイルで同じであるため、ui ファイルを pubic に変更すると、多くのものを変更する必要があります。とにかく簡単な答えを教えてもらえますか?できるだけ混同しないようにしています。私のスキルレベルの人にとっては、コーディングが少なくて混乱が多いよりも、コーディングが多くて混乱が少ない方が良い. 申し訳ありませんが、これはすべて 1 つの巨大な段落であり、コードを提供していませんが、コードが必要だとは思いませんでしたが、コードの一部が必要な場合は、喜んで共有します. ご協力いただき、ありがとうございました。皆様の素敵な夜をお過ごしください。私のスキルレベルの人にとっては、コーディングが少なくて混乱が多いよりも、コーディングが多くて混乱が少ない方が良い. 申し訳ありませんが、これはすべて 1 つの巨大な段落であり、コードを提供していませんが、コードが必要だとは思いませんでしたが、コードの一部が必要な場合は、喜んで共有します. ご協力いただき、ありがとうございました。皆様の素敵な夜をお過ごしください。私のスキルレベルの人にとっては、コーディングが少なくて混乱が多いよりも、コーディングが多くて混乱が少ない方が良い. 申し訳ありませんが、これはすべて 1 つの巨大な段落であり、コードを提供していませんが、コードが必要だとは思いませんでしたが、コードの一部が必要な場合は、喜んで共有します. ご協力いただき、ありがとうございました。皆様の素敵な夜をお過ごしください。

4

1 に答える 1

1

QDialogfinished()というシグナルがあり、このシグナルをスロットに接続できます。作業を完了するにはQSettings、簡単にするためにまたはQStringListをダイアログ設定に渡します (フォント、色の変更を担当します)。QStringListユーザー定義の設定を保存し、ダイアログを閉じた後、メンバーを反復処理してQStringListメイン ウィンドウに警告します。疑似コードは、次のクラス エディターのようになります。

Editor::Editor()
{

   TextSettings textSettings;
   textSettings.setSettings(settings); // settings is a member

   connect(textSettings, &finished(int)), this, SLOT(alertEditor(int)))
}

Editor::alertEditor(int s)
{
  if(s == 0)
  {
    for (int i = 0; i < settings.size(); ++i)
       settings.at(i).toLocal8Bit().constData(); // extract various user settings
  }
}

クラス TextSettings:

TextSettings::TextSettings(QStringList settings)
{
     settings << ui->combobox->currentItem(); // font name as example

}
于 2012-09-11T00:30:24.870 に答える