1

次のようなポップアップ ウィンドウを作成しました。

QFileInfo FileA = "AAA";  
QFileInfo FileB = "BBB";   

if (fileA.exists() == false & (fileB.exists() == false))
      {
          QFrame* PopupWin = new QFrame(this, Qt::Popup | Qt::Window  );
          PopupWin->setGeometry(450,450, 400, 200);
          PopupWin->setLineWidth ( 3 );
          PopupWin->setMidLineWidth ( 1 );
          PopupWin->setFrameStyle ( QFrame::Box | QFrame::Raised);
          QLabel *message = new QLabel(PopupWin);
          message->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
          message->setGeometry(100,50, 200, 100);
          message->setText("blaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                             "bluuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu"
                             "bliiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
                             "bleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
                             "bloooooooooooooooooooooooooooooooooooooooooooooo");
          PopupProzess->show();

      }

3 つの質問があります。

  • ウィンドウがポップアップすると、テキスト全体が表示されず、ラベルの最初の行の一部だけが表示されます。全文を表示するにはどうすればよいですか?
  • 画面のどこかをクリックすると、フレームが閉じます。この「anywhere-click-close」を無効にして、フレーム/ウィンドウを閉じるプッシュボタンまたはクロスのようなものを作成するにはどうすればよいですか?
  • テキストをラベルに正しく合わせ、ラベルをフレームに正しく合わせるにはどうすればよいですか?

Qt Doc で検索し、グーグルでも検索しましたが、解決策が見つかりませんでした。挨拶

4

1 に答える 1

1

なぜあなたは作成していQFrameますか?あなたが欲しいのはですQDialog

  • QtDesignerダイアログをデザインするために を使用してください
  • QDialog設計したダイアログに対応する を継承するクラスを実装する
  • execモーダルに表示するために 使用します。

これにより、コードがよりクリーンになり、読みやすくなります。

QDialog* pMyDialog = new MyDialog(this); // you have to delete it later...
if (fileA.exists() == false && (fileB.exists() == false))
{
       pMyDialog->exec(); 
}

また、UI 要素のジオメトリをハードコードする理由もありません。これがQtDesigner目的です。

ラベルに関しては、spbots が既に回答しているため、wordWrapプロパティを設定する必要があります。

于 2012-03-13T09:27:22.053 に答える