چینش راستبهچپ برای ویجتهای متنی
-
p{direction:rtl; text-align:right}. سلام
DockWidget موقعی که Laout اون راست به چپ میشه , عنوانش با دکمه ی بستنش تداخل پیدا میکنه!http://s1.picofile.com/file/7233617197/DockWidget_Right2Left_Problem.png!
-
p{direction:rtl; text-align:right}. خوبیش اینه که با qApp میتونی این مشکل رو بر طرق کنی
!http://img4up.com/up2/73133988910795354510.png(qAppLayout)! -
[quote author="Mahdi" date="1327702894"]p{direction:rtl; text-align:right}. خوبیش اینه که با qApp میتونی این مشکل رو بر طرق کنی
[/quote]p{direction:rtl; text-align:right}. دلیلش اینه که setLayoutDirection تمام جهتها رو بهصورت عمقی عوض میکنه. ینی برای ویجت فعلی، تمام فرزندان ویجت فعلی، تمام فرزندان آنها و الی آخر... قاعدتاً باید برای خود یک ویجت لیآوت تمام فرزندانش رو هم عوض کنه که نمیکنه. و این فقط در مورد ویجت داک اینطوری نیست. همهٔ وجتهای Container اینطوری نوشته شدن. اگر کمی دقت کنیم میبینیم که منطقیش هم همینه! چون وقتی شما لیآوت یک ویجت رو عوض میکنی نباید انتظار داشته باشید که لیآوت تمام فرزندان اون ویجت هم عوض بشن. فرض کنید یک ویجت محتوایی مثل Grid دارید. وقتی شما لیآوتش رو راست به چپ میکنید انتظار دارید که تنها چینش خود ویجتهای داخلی عوض بشه. نه این که تک تک محتوای هر ویجت داخلی راست به چپ بشه!.
من این کد رو دست نمیزنم. اگر نیاز هست یک جایی لیآوت داک رو عوض کنید، لیآوت عنوانش رو دستی عوض کنید! مثلا از
@
QDockWidget::titleBarWidget()->setLayoutDirection();
@
و این جور کلکها استفاده کنید! -
[quote author="Mahdi" date="1328102820"]p{direction:rtl; text-align:right}. شاید به خاطر وجود خاصیت Alignment باشه
یه جورایی کار layout رو برای QLabel میکنه[/quote]p{direction:rtl; text-align:right}. اتفاقن کار خیلی منطقی انجام دادن! چون QLabel متن PlainText داره. و جهت براش نباید وجود داشته باشه. اصو ل مربوط به تفاوت Alignment و Direction رو رعایت کردن.