View Full Version : مشکل High DPI در Qt Creator
AliRezaBeytari
چهارشنبه 02 تیر 1395, 23:38 عصر
سلام دوستان.
اندازه صفحه لپ تاپ من 3840 در 2160 هست. در این اندازه Qt Creator برنامه ها رو اینطوری خروجی میده :
http://8pic.ir/images/6pm0j7tmt1nvah7hqovr.png
چطور میتونم این مشکل رو حل کنم ؟!
AliRezaBeytari
پنج شنبه 03 تیر 1395, 00:09 صبح
مشکل حل شد !!
باید خط زیر رو در فایل main.cpp و درتایع main در اولین خط قرار بدید :
QApplication::setAttribute(Qt::AA_EnableHighDpiSca ling);
تا اینطوری بشه :
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiSca ling);
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
راه دومی هم هست که یه environment variable با نام QT_AUTO_SCREEN_SCALE_FACTOR درست کنید و مقدار اون رو برابر با 1 قرار بدید.
http://8pic.ir/images/nz0pp2xzuxndi9cb1er2.png
امیدورم کمک بکنه. موفق باشید.
کامبیز اسدزاده
پنج شنبه 03 تیر 1395, 09:21 صبح
سلام دوستان.
اندازه صفحه لپ تاپ من 3840 در 2160 هست. در این اندازه Qt Creator برنامه ها رو اینطوری خروجی میده :
http://8pic.ir/images/6pm0j7tmt1nvah7hqovr.png
چطور میتونم این مشکل رو حل کنم ؟!
وای وای وای...
2160 :قلب:
آره برای حل این مشکل از کیوت 5.6 به اینور باید از فلگ Qt::AA_EnableHighDpiScaling استفاده بشه و به خوبی هم پشتیبانی میکنه.
از روش QT_AUTO_SCREEN_SCALE_FACTOR در سیستم عامل استفاده نکنید چون شرط اصلی پشتیبانی اپلیکیشن شما از حالت HQ هست.
AliRezaBeytari
پنج شنبه 03 تیر 1395, 13:00 عصر
اما خب اینکه هر دفعه بخوای برای هر پروژه این خط رو قرار بدید یک مقدار خسته کنندست. راهی نیست که بشه به صورت اوتوماتیک این خط به فایل main.cpp اضافه بشه ؟!
AliRezaBeytari
پنج شنبه 03 تیر 1395, 13:19 عصر
اما خب اینکه هر دفعه بخوای برای هر پروژه این خط رو قرار بدید یک مقدار خسته کنندست. راهی نیست که بشه به صورت اوتوماتیک این خط به فایل main.cpp اضافه بشه ؟!
میشه به آدرس زیر رفت و فایل main.cpp رو تغییر داد :
C:\Qt\Qt5.7.0\Tools\QtCreator\share\qtcreator\temp lates\qt4project
فایل main.cpp :
#include "%INCLUDE%"
#include <%QAPP_INCLUDE%>
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiSca ling);
QApplication a(argc, argv);
%CLASS% w;
%SHOWMETHOD%
return a.exec();
}
کامبیز اسدزاده
پنج شنبه 03 تیر 1395, 19:22 عصر
اما خب اینکه هر دفعه بخوای برای هر پروژه این خط رو قرار بدید یک مقدار خسته کنندست. راهی نیست که بشه به صورت اوتوماتیک این خط به فایل main.cpp اضافه بشه ؟!
در نسخه 5.7 کیوت این کد به صورت خودکار اضافه میشه :چشمک:
درضمن یه خط کده دیگه این چقدر زمان بره مگه !
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.