各位大神,關于Qt 解析度自適應的有什么方法去處理,比如我們現在的界面都是在1920X1080 解析度基礎下調整好的,但是如果在4K的顯示螢屏下面會出現按鈕界面過下的問題,怎么才能自適應放大圖片和框。
uj5u.com熱心網友回復:
layout都是按百分比分布就好了吧,不要用固定大小的控制元件uj5u.com熱心網友回復:
這樣的話只能用布局來實作了,但是很多地方不是用布局就可以搞定的,像有貼圖的界面,大小都寫死的,Qt 有沒有什么全域屬性可以放大和縮小整個界面的大小uj5u.com熱心網友回復:
QT本身布局就是為了縮放的,貼圖選大像素的圖就好了這樣,大或者小都不會失真
uj5u.com熱心網友回復:
意思是一開始設計的時候界面都應該用布局去做才能做到解析度自適應嗎?因為現在我們的界面開發基本成型了,開始沒有考慮不同解析度下顯示的問題,當初做的時候很多界面也寫死大小的,這種情況有什么辦法處理。uj5u.com熱心網友回復:
圖省事就固定界面大小,其實用layout管理下也不會太麻煩。以前肯定有些是OK的
uj5u.com熱心網友回復:
同問
uj5u.com熱心網友回復:
在你的主視窗里面,設定setMaxSize()就會自動適應全視窗uj5u.com熱心網友回復:
4K螢屏,在dpi=1的時候肯定是沒問題的,不然的話只要有固定大小的控制元件,都需要乘以dpiQScreen* screen = app.primaryScreen();
qreal dpi = screen->logicalDotsPerInch()/96;
uj5u.com熱心網友回復:
8樓 +1uj5u.com熱心網友回復:
8樓高手!!!uj5u.com熱心網友回復:
Qt從5.6.0開始,支持High-DPI。int main(int argc, char *argv[])
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QApplication a(argc, argv);
......
}
注意,QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);一定要加在QApplication創建 之前。
#if (QT_VERSION >=QT_VERSION_CHECK(5, 6, 0))保證只在Qt5.6.0及以上版本可用。
親自實驗可實作
uj5u.com熱心網友回復:
我不知道4k大小什么意思,但是若是可以,在設計界面和除錯的時候,先把自己的電腦設定成4k,或者接近。這樣就可以模擬在那種環境下運行的畫面。
uj5u.com熱心網友回復:
private slots:void resizeEvent(QResizeEvent* size);
這里面寫代碼。自適應。我都這么干的。要么利用布局
uj5u.com熱心網友回復:
void Dialog_web_html5Test::resizeEvent(QResizeEvent* size){
// QSize size ( this->width(),this->height()-60);
ui->webView->resize(this->width(),this->height()-60);
}
uj5u.com熱心網友回復:
Qt從5.6.0開始,支持High-DPI。
int main(int argc, char *argv[])
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QApplication a(argc, argv);
QFont font(QStringLiteral("新宋體"));
font.setPixelSize(12);
a.setFont(font);
......
return a.exec();
}
加上高分屏支持,再加上字體設定
uj5u.com熱心網友回復:
用QScrollArea,非常輕松解決問題!uj5u.com熱心網友回復:
設好各個控制元件最小寬高就可以了,QScrollArea自動加滾動條uj5u.com熱心網友回復:
果斷留記號
uj5u.com熱心網友回復:
https://blog.csdn.net/a844651990/article/details/83963669轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/10773.html
標籤:Qt
上一篇:請問鴻蒙跟ios有什么區別?
