[Qt-interest] Applying RightToLeft for whole application
admin at mbnoimi.net
admin at mbnoimi.net
Wed May 18 17:35:19 CEST 2011
On 18/05/2011 05:38 م, admin at mbnoimi.net wrote:
> On 18/05/2011 04:32 م, admin at mbnoimi.net wrote:
>
>> Hi guys,
>>
>>
>> For applying right to left layout I use setLayoutDirection function
>> for each container (QWdiget, QMainWindow... etc) in some cases (I
>> faced it) it's really exhausted procedure so I'm wondering:
>>
>>
>> *Can I applying layout direction for whole application by single line?*
>>
>>
>> PS
>>
>> I tried to use setLayoutDirection with QApplication varialble but it
>> didn't work!
>>
>>
>> intmain(intargc,char*argv[])
>>
>> {
>> QApplication a(argc, argv);
>> MainWindow w;
>> a.setLayoutDirection(Qt::RightToLeft);
>> w.show();
>> return a.exec();
>> }
>>
>> There is out code solution which passing -reverse argument. *Can I
>> use -reverse somehow inside my code for geting its benefit?*
> Sorry, It's working well when I use setLayoutDirection in main() but
> it's not when I use it from MainWindow... see this slot:
>
> voidMainWindow::on_actionInstant_Translation_triggered()
> {
> QTranslator translator;
> if(qApp->isRightToLeft())
> {
> if(!translator.load(":/lang/en"))
> qDebug()<<QObject::tr("Couldn't load English language");
> // this->setLayoutDirection(Qt::LeftToRight);
> qApp->setLayoutDirection(Qt::LeftToRight);
> }
> else
> {
> if(!translator.load(":/lang/ar"))
> qDebug()<<QObject::tr("Couldn't load Arabic language");
> // this->setLayoutDirection(Qt::RightToLeft);
> QLocale::setDefault(QLocale(QLocale::Arabic, QLocale::SyrianArabRepublic));
> qApp->setLayoutDirection(Qt::RightToLeft);
> }
> qApp->installTranslator(&translator);
> ui->retranslateUi(this);
> QLocale local;
> /**
> BUG: QMessageBox buttons didn't appear in Arabic for Arabic local language $ RTL layout
> */
> QMessageBox::information(this, "", QLocale::languageToString(local.language()), QMessageBox::Yes|QMessageBox::No);
> }
I fixed the issue by adding this loop:
foreach(QWidget*widget,QApplication::allWidgets())
widget->setLayoutDirection(Qt::RightToLeft);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20110518/ea8b4ea4/attachment.html
More information about the Qt-interest-old
mailing list