نافذة منبثقة.كيفية إظهار محتوى النص الكامل وسؤالين آخرين
سؤال
أنا خلقت نافذة منبثقة مثل هذا:
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
الملكية.
لا تنتمي إلى StackOverflow