نافذة منبثقة.كيفية إظهار محتوى النص الكامل وسؤالين آخرين

StackOverflow https://stackoverflow.com//questions/9675435

  •  12-12-2019
  •  | 
  •  

سؤال

أنا خلقت نافذة منبثقة مثل هذا:

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();

      }

لدي ثلاثة أسئلة:

  • عندما تنبثق النافذة لا أستطيع رؤية النص بأكمله ، مجرد جزء من السطر الأول من التسمية.كيف يمكنني إظهار النص بأكمله?
  • يتم إغلاق الإطار عند النقر في أي مكان على الشاشة.كيف تعطيل هذا "في أي مكان-انقر فوق إغلاق" وإنشاء الضغط على زر أو نوع من الصليب الذي يغلق الإطار / نافذة?
  • كيف يمكنني تناسب النص الحق في التسمية والتسمية الحق في الإطار?

لقد بحثت في وثيقة كيو تي وأيضا غوغلد ، ولكن لم تجد الحلول.تحياتي

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

المحلول

لماذا تقوم بإنشاء 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(); 
}

أيضا ليس هناك سبب ل هاردكود هندسة عنصر واجهة المستخدم.هذا هو ما QtDesigner هو ل.

وفيما يتعلق التسمية ، كما سببوتس أجاب بالفعل لديك لتعيين wordWrap الملكية.

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