{"id":393228,"date":"2024-06-29T10:53:14","date_gmt":"2024-06-29T10:53:14","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=393228"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=393228","title":{"rendered":"<span>\u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f Qt-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0434 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0451\u0442\u043a\u043e\u0441\u0442\u0438. \u0427\u0430\u0441\u0442\u044c 2<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/post\/582180\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0440\u0435\u0446\u0435\u043f\u0442\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0443 Qt-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0440\u0435\u043b\u044c\u0441\u044b High DPI, \u0442\u043e \u0435\u0441\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043a \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0435\u0442\u043a\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0421\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u041e\u0421 Windows \u0434\u0430\u0432\u043d\u043e \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043a\u0430\u043a \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0440\u0438\u0444\u0442\u0430 \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (\u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 GUI \u043d\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u0445 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0451\u0442\u043a\u043e\u0441\u0442\u044c\u044e (High DPI). \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0430 Qt, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430. \u0427\u0430\u0441\u0442\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u2013 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 Full HD (1920&#215;1080), \u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440 4K (3840&#215;2160) \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430, \u0442\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7c8\/1e2\/8d0\/7c81e28d0d6e5a81ebef2d205cea4d65.png\" width=\"734\" height=\"459\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7c8\/1e2\/8d0\/7c81e28d0d6e5a81ebef2d205cea4d65.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0440\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0446\u0435\u043f\u0442\u043e\u0432. \u0411\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0447\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0431\u044b\u043b \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 Qt5 \u0438 Qt6 (\u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e \u2013 5.15 \u0438 6.2), \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043a\u0430\u0445 Windows\u00a010 \u0438 Windows\u00a07. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0440\u0435\u0430\u043b\u0438\u0438 \u0438 \u0431\u0443\u0434\u043d\u0438 Qt5 (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 Qt5 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0440\u043e), \u043d\u043e \u0440\u0435\u0446\u0435\u043f\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0441 \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0438 \u043d\u0430 Qt6 \u2013 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>\u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0439 \u0438 \u0431\u0443\u0434\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0436\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 (\u0438 \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0438\u0445). \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/582180\/\" rel=\"noopener noreferrer nofollow\">\u043d\u0430\u0448\u0443 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a>.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 7. \u041a\u043e\u043b\u043e\u043d\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/h3>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041f\u043e\u0434 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0430 \u0431\u0443\u0434\u0435\u0442 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043b\u0438\u0431\u043e \u043f\u043e\u0434 \u0434\u043b\u0438\u043d\u0443 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043b\u0438\u0431\u043e \u043f\u043e\u0434 \u0434\u043b\u0438\u043d\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 \u043a\u043e\u043b\u043e\u043d\u043a\u0438. \u041f\u0443\u0441\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043f\u043e\u0434 \u0434\u043b\u0438\u043d\u0443 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u0442, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445), \u043d\u043e \u043c\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 <a href=\"https:\/\/habr.com\/ru\/post\/582180\/#recept3\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0446\u0435\u043f\u0442\u043e\u043c 3<\/a> \u0438\u043c\u0435\u0435\u043c \u043f\u0440\u0430\u0432\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">TableWidget::TableWidget(QWidget* parent) : QTableWidget(parent) { setSelectionBehavior(QAbstractItemView::SelectRows); setSelectionMode(QAbstractItemView::ExtendedSelection); setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); verticalHeader()->setVisible(false);  setRowCount(2); setColumnCount(3);  QStringList headers; headers &lt;&lt; \"Short\" &lt;&lt; \"Middle header\" &lt;&lt; \"Long long long long header\"; setHorizontalHeaderLabels(headers);  QFont font(horizontalHeader()->font()); \/\/ A header will draw a bold font after row selecting. Take it into account. font.setBold(true);  QFontMetrics fm(font); int space = fm.horizontalAdvance(\"a\"); \/\/ one symbol width  for (int i = 0; i &lt; headers.size(); i++) { int w = fm.horizontalAdvance(headers[i]) + 2 * space; setColumnWidth(i, w); } }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0448\u0440\u0438\u0444\u0442\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0442\u0435\u043a\u0441\u0442 (\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432) \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0441\u044f \u0432 \u0440\u0430\u043c\u043a\u0438.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0449\u0435 \u043f\u0430\u0440\u0443 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0432\u0438\u0434\u0436\u0435\u0442:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">QSize TableWidget::sizeHint() const { const double scale = screen()->logicalDotsPerInchX() \/ 96.0; return QSize(qRound(320 * scale), qRound(100 * scale)); } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0433\u0440\u0443\u0431\u043e \u043d\u0430\u0440\u0443\u0448\u0438\u043b\u0438 \u0432\u0435\u0440\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443: \u0437\u0434\u0435\u0441\u044c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0438\u0437 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 (\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0438\u043b\u0435\u0439), \u0430 \u043d\u0435 \u0438\u0437 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/post\/582180\/#recept3\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0446\u0435\u043f\u0442 3<\/a> \u0432\u043c\u0435\u0441\u0442\u043e <a href=\"https:\/\/habr.com\/ru\/post\/582180\/#recept6\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0446\u0435\u043f\u0442\u0430 6<\/a>. \u0427\u0442\u043e \u0436, \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0436\u0438\u0437\u043d\u044c \u043d\u0430\u043c \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u0438\u0442, \u0430 \u0434\u043b\u044f \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u043e\u0439\u0434\u0435\u0442.<\/p>\n<p>\u0412\u00a0 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u0438\u0434\u0436\u0435\u0442:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e88\/83b\/8c7\/e8883b8c72ccdf9b2cb6223d0416457d.png\" alt=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" title=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" width=\"840\" height=\"206\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e88\/83b\/8c7\/e8883b8c72ccdf9b2cb6223d0416457d.png\"\/><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0432\u0438\u0434\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u043f\u0440\u0438 \u043b\u044e\u0431\u044b\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0445 \u044d\u043a\u0440\u0430\u043d\u0430. \u0427\u0435\u0433\u043e \u0436\u0435 \u0431\u043e\u043b\u0435?<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u043a \u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u0430 \u0442\u0435\u043a\u0441\u0442 \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0434\u043b\u0438\u043d\u043d\u044b\u043c, \u0442\u0430\u043a \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b (\u0438\u043c\u0435\u0435\u043c \u0432 \u0432\u0438\u0434\u0443 \u0448\u0438\u0440\u0438\u043d\u0443, \u043a\u043e\u043d\u0435\u0447\u043d\u043e) \u043a\u043e\u043b\u043e\u043d\u043e\u043a. \u0410, \u043f\u043e\u043c\u0435\u043d\u044f\u0432, \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0410 \u0438\u043d\u0430\u0447\u0435 \u0437\u0430\u0447\u0435\u043c \u0435\u043c\u0443 \u0442\u0430\u043a\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c GUI? \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u2013 \u044d\u0442\u043e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435, \u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c GUI \u00ab\u043f\u043e\u0434 \u0441\u0435\u0431\u044f\u00bb.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435:<\/p>\n<pre><code class=\"cpp\">TableWidget::~TableWidget() { QSettings settings(\"Test company name\", \"Test product name\"); settings.setValue(\"TableColumns\", horizontalHeader()->saveState()); }<\/code><\/pre>\n<p>\u0410 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0431\u0443\u0434\u0435\u043c \u044d\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043a\u043e\u043d\u0435\u0446 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"cpp\">QSettings settings(\"Test company name\", \"Test product name\"); QVariant var = settings.value(\"TableColumns\"); if (!var.isNull()) horizontalHeader()->restoreState(var.toByteArray());<\/code><\/pre>\n<p>\u0418 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435. \u042d\u0442\u043e \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f (\u0430 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043a\u0443\u043f\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 4K 27&#8243; \u0438\u00a0 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430):<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/af0\/212\/024\/af02120241bcd1bf2a02aa786f889f50.png\" alt=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" title=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" width=\"840\" height=\"208\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/af0\/212\/024\/af02120241bcd1bf2a02aa786f889f50.png\"\/><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043d\u0435\u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u0435\u0434\u044c \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0433\u0440\u0443\u0437\u044f\u0442\u0441\u044f \u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b \u0434\u043b\u044f \u0442\u0435\u0445, \u00ab\u0441\u0442\u0430\u0440\u044b\u0445\u00bb \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0448\u0440\u0438\u0444\u0442\u043e\u0432.<\/p>\n<p>\u00a0\u0420\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0443\u043c\u044f \u043f\u0443\u0442\u044f\u043c\u0438. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e.<\/p>\n<p><a class=\"anchor\" name=\"recept7\" id=\"recept7\"><\/a><\/p>\n<p><strong><em>\u0420\u0435\u0446\u0435\u043f\u0442 7. \u0412\u0435\u0434\u0438\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0442\u043e\u043a \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u0432 \u044d\u043a\u0440\u0430\u043d\u0430.<\/em><\/strong><\/p>\n<p>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2013 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0432\u0435\u0442\u043a\u0443 \u0440\u0435\u0435\u0441\u0442\u0440\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0448\u043b\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 24&#8243; FullHD \u0441 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0430 100% \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u043e\u044f \u0432\u0435\u0442\u043a\u0430, \u0430 \u0434\u043b\u044f 27&#8243; 4K \u0441 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0430 200% \u00a0\u2013 \u0441\u0432\u043e\u044f. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043a\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<pre><code class=\"cpp\">const int scale = qRound(screen()->logicalDotsPerInchX() \/ 96.0 * 100); QSettings settings(\"Test company name\", \"Test product name\"); QVariant var = settings.value(QString(\"TableColumns\/scale%1\").arg(scale)); if (!var.isNull()) horizontalHeader()->restoreState(var.toByteArray());<\/code><\/pre>\n<p>\u0410 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043d\u0430 \u044d\u0442\u043e:<\/p>\n<pre><code class=\"cpp\">TableWidget::~TableWidget() { const int scale = qRound(screen()->logicalDotsPerInchX() \/ 96.0 * 100); QSettings settings(\"Test company name\", \"Test product name\"); settings.setValue(QString(\"TableColumns\/scale%1\").arg(scale), horizontalHeader()->saveState()); }<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u043b\u044e\u0431\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0430\u0448\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e47\/f11\/568\/e47f11568a38b3371db6c19cfdccf946.png\" alt=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" title=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" width=\"840\" height=\"206\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e47\/f11\/568\/e47f11568a38b3371db6c19cfdccf946.png\"\/><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0443 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u043c\u0438\u043d\u0443\u0441: \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0442 \u0432\u0441\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u0432\u043e\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u0432\u0441\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443). \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c-\u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e, \u043a\u0430\u043a \u043f\u0440\u0438\u0432\u0438\u043b\u043e, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0442\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u0434\u043e\u0447\u0435\u0442, \u0440\u0430\u0437 \u0443\u0436 \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u043b\u0438\u0448\u044c \u0435\u0434\u0438\u043d\u043e\u0436\u0434\u044b.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043e\u0439\u0442\u0438 \u0438 \u044d\u0442\u043e\u0442, \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043c\u0438\u043d\u0443\u0441? \u0414\u0430.<\/p>\n<h3>\u0420\u0435\u0446\u0435\u043f\u0442 8. \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0445 \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430<\/h3>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>QTableView::setColumnWidth<\/code>, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u2013 \u043d\u0430\u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442, \u0440\u0430\u0432\u043d\u044b\u0439 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435) \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0443. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0435\u0441\u0442\u0438 \u0432\u0442\u043e\u0440\u0443\u044e (\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435) \u0432\u0435\u0442\u043a\u0438 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430:<\/p>\n<pre><code class=\"cpp\">TableWidget::~TableWidget() { QSettings settings(\"Test company name\", \"Test product name\"); settings.setValue(\"TableColumns\", horizontalHeader()->saveState());  const double scale = screen()->logicalDotsPerInchX() \/ 96.0; settings.setValue(\"Scale\", scale);  }<\/code><\/pre>\n<p>\u0410 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0432 \u043a\u043e\u043d\u0435\u0446, \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 (\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u043a) \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 <code>restoreState<\/code>:<\/p>\n<pre><code class=\"cpp\">QVariant vScale = settings.value(\"Scale\"); if (!vScale.isNull()) { const double currentScale = screen()->logicalDotsPerInchX() \/ 96.0; double lastScale = vScale.toDouble(); if (!qFuzzyCompare(currentScale, lastScale)) { for (int i = 0; i &lt; headers.size(); i++) setColumnWidth(i, qRound(columnWidth(i) * currentScale \/ lastScale)); } }<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u043b\u044e\u0431\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0430\u0448\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/050\/394\/1b3\/0503941b3cd04e51e15df3ca7b4b54d4.png\" alt=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" title=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" width=\"840\" height=\"206\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/050\/394\/1b3\/0503941b3cd04e51e15df3ca7b4b54d4.png\"\/><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043b\u044e\u0431\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: \u043a\u0430\u043a\u043e\u0439 \u043f\u043e\u043b\u0437\u0443\u043d\u043e\u043a \u0438 \u043a\u0443\u0434\u0430 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u043d\u0443\u043b, \u043a\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u0432\u044b\u0431\u0440\u0430\u043b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043a\u0443\u0434\u0430 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u043d\u0443\u043b \u0441\u043f\u043b\u0438\u0442\u0442\u0435\u0440 \u0438 \u0442.\u0434. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0438\u0445 \u043e\u0442\u0442\u0443\u0434\u0430 \u2013 \u0431\u043e\u043b\u044c\u0448\u0430\u044f, \u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d (\u0432\u0435\u0440\u043d\u0435\u0435, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043a\u043b\u0438\u043d\u0430\u0442\u044c \u0412\u0430\u0441), \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0412\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u0435 \u0435\u043c\u0443 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0430 \u043d\u0435 \u0442\u0438\u0445\u043e \u0438\u0445 \u043f\u043e\u0445\u043e\u0440\u043e\u043d\u0438\u0442\u0435. \u00a0\u041f\u043e\u0441\u0435\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u0446\u0435\u043f\u0442\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0438 \u043c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0440\u0435\u0446\u0435\u043f\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e (<a href=\"#recept7\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0446\u0435\u043f\u0442\u0430 7<\/a>).<\/p>\n<p>\u041d\u0430 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0436\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0442\u043e, \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430 \u043d\u0435\u043c \u044d\u0442\u043e\u0442 \u0440\u0435\u0446\u0435\u043f\u0442.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 8. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0432\u0438\u0434\u0436\u0435\u0442 \u0438 \u0432\u0441\u0451, \u0447\u0442\u043e \u0432 \u043d\u0435\u043c<\/h3>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u043e\u0440\u0432\u0435\u043c\u0441\u044f \u043e\u0442 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043c\u0430\u0445\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0447\u0442\u043e-\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0443\u043f\u043d\u043e\u0435. \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0432\u0438\u0434\u0436\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0439 \u043e\u0442 QMainWindow \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0431\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e QDockWidget`\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u043e\u0439:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) { QLabel* imageLabel = new QLabel; imageLabel->setPixmap(QPixmap(\"nature.jpg\")); auto scrollArea = new QScrollArea; scrollArea->setWidget(imageLabel);  auto dock1 = new QDockWidget(\"Dock1 Title\"); dock1->setWidget(new TableWidget); auto dock2 = new QDockWidget(\"Dock2 Title\"); dock2->setWidget(new QWidget); auto dock3 = new QDockWidget(\"Dock3 Title\"); dock3->setWidget(new QWidget); auto dock4 = new QDockWidget(\"Dock4 Title\"); dock4->setWidget(new ScaleWgt);  setCentralWidget(scrollArea); addDockWidget(Qt::TopDockWidgetArea, dock1); addDockWidget(Qt::TopDockWidgetArea, dock2); addDockWidget(Qt::BottomDockWidgetArea, dock3); addDockWidget(Qt::BottomDockWidgetArea, dock4);  setStyleSheet(\"QMainWindow::separator {background: gray;}\"); }<\/code><\/pre>\n<\/div>\n<\/details>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b3d\/830\/c88\/b3d830c88b3d4e92a4d920c498405b14.png\" alt=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%.\" title=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%.\" width=\"484\" height=\"600\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b3d\/830\/c88\/b3d830c88b3d4e92a4d920c498405b14.png\"\/><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%.<\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u043c\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u0440\u0435\u0446\u0435\u043f\u0442\u0430\u043c\u0438 (\u0441\u043c. <a href=\"https:\/\/habr.com\/ru\/post\/582180\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>), \u0442\u043e \u0432\u0441\u0451 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u043f\u0440\u0438 \u043b\u044e\u0431\u044b\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0445 \u044d\u043a\u0440\u0430\u043d\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043e\u043a, \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 QDockWidget`\u043e\u0432. \u0410, \u043f\u043e\u043c\u0435\u043d\u044f\u0432, \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u043e\u0441\u044c \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0432\u044b\u0448\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u2013 \u044d\u0442\u043e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435, \u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c GUI \u00ab\u043f\u043e\u0434 \u0441\u0435\u0431\u044f\u00bb.<\/p>\n<p>\u00a0\u0412 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 gui \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435:<\/p>\n<pre><code class=\"cpp\">MainWindow::~MainWindow() { QSettings settings(\"Test company name\", \"Test product name\"); settings.setValue(\"geometry\", saveGeometry()); settings.setValue(\"windowState\", saveState()); }<\/code><\/pre>\n<p>\u0410 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0432 \u043a\u043e\u043d\u0435\u0446, \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432:<\/p>\n<pre><code class=\"cpp\">QSettings settings(\"Test company name\", \"Test product name\");  QVariant state = settings.value(\"windowState\"); if(!state.isNull()) restoreState(state.toByteArray());  QVariant geometry = settings.value(\"geometry\"); if (!geometry.isNull()) restoreGeometry(geometry.toByteArray());<\/code><\/pre>\n<p>\u0418 \u043c\u044b \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435. \u041a\u0443\u043f\u0438\u0432 \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 4K \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0435\u0433\u043e \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 \u0441\u0442\u0430\u0440\u043e\u043c\u0443 FullHD (\u043f\u043e\u043f\u0443\u0442\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u0432 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430, \u043a\u043e\u043d\u0435\u0447\u043d\u043e), \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442, \u0447\u0442\u043e \u0435\u0433\u043e \u043b\u044e\u0431\u0438\u043c\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0442\u0430\u043a \u0445\u043e\u0440\u043e\u0448\u043e, \u043a\u0430\u043a \u0440\u0430\u043d\u044c\u0448\u0435. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e96\/d69\/f7a\/e96d69f7a8f2f4b9370a8cc777d56993.png\" alt=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" title=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" width=\"565\" height=\"903\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e96\/d69\/f7a\/e96d69f7a8f2f4b9370a8cc777d56993.png\"\/><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u0418 \u044d\u0442\u043e \u0441\u043d\u043e\u0432\u0430 \u043d\u0435\u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u0435\u0434\u044c \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0433\u0440\u0443\u0437\u044f\u0442\u0441\u044f \u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u00ab\u0441\u0442\u0430\u0440\u043e\u0433\u043e\u00bb \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0438 \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b. \u0420\u0430\u0437\u043c\u0435\u0440\u044b \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442, \u0440\u0430\u0432\u043d\u044b\u0439 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435) \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0443. \u0420\u0430\u0437\u043c\u0435\u0440\u044b \u043e\u043a\u043d\u0430 \u043d\u0443\u0436\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043e\u043a\u043d\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u044d\u043a\u0440\u0430\u043d\u0430 (\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0430\u0434\u043e, \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u043d\u0430\u0434\u043e \u0438 \u0443\u0447\u0435\u0441\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043d\u0430 \u043f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d \u0438 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u044d\u043a\u0440\u0430\u043d\u043e\u0432).<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043e\u043a\u043d\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043f\u043b\u044e\u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 (\u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430) \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430:<\/p>\n<pre><code class=\"cpp\">const double scale = screen()->logicalDotsPerInchX() \/ 96.0; settings.setValue(\"Scale\", scale);  settings.setValue(\"MainWindow\/Width\", size().width()); settings.setValue(\"MainWindow\/Height\", size().height());<\/code><\/pre>\n<p>\u0410 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"cpp\">double currentScale = screen()->logicalDotsPerInchX() \/ 96.0; QVariant vScale = settings.value(\"Scale\"); QVariant vW = settings.value(\"MainWindow\/Width\"); QVariant vH = settings.value(\"MainWindow\/Height\"); if (!vScale.isNull()) { double lastScale = vScale.toDouble(); if (!qFuzzyCompare(currentScale, lastScale) &amp;&amp; !vW.isNull() &amp;&amp; !vH.isNull()) { resize(qRound(vW.toInt() * currentScale \/ lastScale),  qRound(vH.toInt() * currentScale \/ lastScale)); } }<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043e\u043a\u043d\u0430 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u0441\u044f (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u0441\u044f, \u043d\u043e \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0435\u0433\u043e), \u0430 \u0432\u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u0441\u044f, \u043a\u0430\u043a \u043f\u043e\u0432\u0435\u0437\u0451\u0442:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/30c\/0d1\/bab\/30c0d1bab8ab3f22f3bb8fed0e170f32.png\" alt=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" title=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" width=\"1384\" height=\"585\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/30c\/0d1\/bab\/30c0d1bab8ab3f22f3bb8fed0e170f32.png\"\/><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0432\u043a\u043b\u0430\u0434\u043e\u043a. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0435 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 <code>restoreState\/saveState<\/code>, \u0447\u0442\u043e \u0443\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>QMainWindow::resizeDocks<\/code>. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441 \u043d\u0435\u0439 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u0430\u043f\u0440\u0438\u0437\u043d\u0430\u044f.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0434\u043e\u043a\u0438 \u0432 \u0432\u0435\u043a\u0442\u043e\u0440 <code>_docks<\/code> (\u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435). \u041f\u043e\u0442\u043e\u043c \u0432 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u043b\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0434\u043e\u043a\u043e\u0432 \u0438 \u0442\u043e, \u043a\u0430\u043a\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">std::vector&lt;QSize> dockSizes(_docks.size()); for (size_t i = 0; i &lt; _docks.size(); i++) dockSizes[i] = _docks[i]->size();  QByteArray array((char*)&amp;dockSizes[0], dockSizes.size() * sizeof(QSize)); settings.setValue(\"MainWindow\/Docks\/All\", array);  std::vector&lt;int> hidden = tabifiedHidden(); array = hidden.empty()  ? QByteArray() : QByteArray((char*)&amp;hidden[0], hidden.size() * sizeof(int)); settings.setValue(\"MainWindow\/Docks\/HiddenIndexes\", array);<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0432 \u043a\u043e\u043d\u0435\u0446, \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0432\u043a\u043b\u0430\u0434\u043e\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">QByteArray array = settings.value(\"MainWindow\/Docks\/All\").toByteArray(); QByteArray hiddenArray = settings.value(\"MainWindow\/Docks\/HiddenIndexes\").toByteArray(); std::vector&lt;int> hiddenIndexes; if (!hiddenArray.isNull() &amp;&amp; !hiddenArray.isEmpty()) { int size = hiddenArray.size() \/ sizeof(int); hiddenIndexes.resize(size); memcpy(&amp;hiddenIndexes[0], hiddenArray.data(), hiddenArray.size()); }  if (!array.isNull() &amp;&amp; array.size() >= _docks.size() * sizeof(QSize)) { double lastScale = vScale.toDouble(); QList&lt;int> vWidth; QList&lt;int> vHeight; if (!qFuzzyCompare(currentScale, lastScale) &amp;&amp; !vW.isNull() &amp;&amp; !vH.isNull()) { QList&lt;QDockWidget*> ldw; for (size_t i = 0; i &lt; _docks.size(); i++) { if (std::find(hiddenIndexes.begin(), hiddenIndexes.end(), i) != hiddenIndexes.end()) continue; ldw.push_back(_docks[i]); QSize* ptrSize = (QSize*)array.data() + i; vWidth.push_back((*ptrSize).width() * currentScale \/ lastScale); vHeight.push_back((*ptrSize).height() * currentScale \/ lastScale); }  resizeDocks(ldw, vWidth, Qt::Horizontal); resizeDocks(ldw, vHeight, Qt::Vertical); } } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>QMainWindow::resizeDocks<\/code>. \u0414\u0430, \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0449\u0435. \u0424\u0443\u043d\u043a\u0446\u0438\u044e <code>tabifiedHidden<\/code> \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0432\u0441\u0435 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 <code>QMainWindow<\/code>, \u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u0434\u0435\u043b\u0430\u0435\u0448\u044c. \u041c\u043d\u0435 \u0441\u0430\u043c\u043e\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u0430\u044f:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">std::vector&lt;int> MainWindow::tabifiedHidden() const { std::vector&lt;int> result; QList &lt;QTabBar*>lst = findChildren&lt;QTabBar*>(); foreach(QTabBar * tab, lst) { for (int i = 0; i &lt; tab->count(); i++) { if (i == tab->currentIndex()) continue;  quintptr wId = qvariant_cast&lt;quintptr>(tab->tabData(i)); QDockWidget* widget = reinterpret_cast&lt;QDockWidget*>(wId); auto iter = std::find(_docks.begin(), _docks.end(), widget); if (iter != _docks.end()) result.push_back(std::distance(_docks.begin(), iter)); } } return result; }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0418\u0442\u0430\u043a, \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u043c\u044b \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u0438 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u0442\u0442\u0443\u0434\u0430, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/514\/947\/814\/514947814b04ff28e06023969e4ca0d7.png\" alt=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" title=\"Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.\" width=\"1384\" height=\"585\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/514\/947\/814\/514947814b04ff28e06023969e4ca0d7.png\"\/><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<hr\/>\n<p>\u0412\u0441\u0435\u043c \u043d\u0435 \u0431\u043e\u043b\u0435\u0442\u044c!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/584760\/\"> https:\/\/habr.com\/ru\/articles\/584760\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/post\/582180\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0440\u0435\u0446\u0435\u043f\u0442\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0443 Qt-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0440\u0435\u043b\u044c\u0441\u044b High DPI, \u0442\u043e \u0435\u0441\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043a \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0435\u0442\u043a\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0421\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u041e\u0421 Windows \u0434\u0430\u0432\u043d\u043e \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043a\u0430\u043a \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0440\u0438\u0444\u0442\u0430 \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (\u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 GUI \u043d\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u0445 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0451\u0442\u043a\u043e\u0441\u0442\u044c\u044e (High DPI). \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0430 Qt, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430. \u0427\u0430\u0441\u0442\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u2013 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 Full HD (1920&#215;1080), \u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440 4K (3840&#215;2160) \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430, \u0442\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0440\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0446\u0435\u043f\u0442\u043e\u0432. \u0411\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0447\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0431\u044b\u043b \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 Qt5 \u0438 Qt6 (\u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e \u2013 5.15 \u0438 6.2), \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043a\u0430\u0445 Windows\u00a010 \u0438 Windows\u00a07. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0440\u0435\u0430\u043b\u0438\u0438 \u0438 \u0431\u0443\u0434\u043d\u0438 Qt5 (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 Qt5 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0440\u043e), \u043d\u043e \u0440\u0435\u0446\u0435\u043f\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0441 \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0438 \u043d\u0430 Qt6 \u2013 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>\u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0439 \u0438 \u0431\u0443\u0434\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0436\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 (\u0438 \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0438\u0445). \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/582180\/\" rel=\"noopener noreferrer nofollow\">\u043d\u0430\u0448\u0443 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a>.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 7. \u041a\u043e\u043b\u043e\u043d\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/h3>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041f\u043e\u0434 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0430 \u0431\u0443\u0434\u0435\u0442 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043b\u0438\u0431\u043e \u043f\u043e\u0434 \u0434\u043b\u0438\u043d\u0443 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043b\u0438\u0431\u043e \u043f\u043e\u0434 \u0434\u043b\u0438\u043d\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 \u043a\u043e\u043b\u043e\u043d\u043a\u0438. \u041f\u0443\u0441\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043f\u043e\u0434 \u0434\u043b\u0438\u043d\u0443 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u0442, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445), \u043d\u043e \u043c\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 <a href=\"https:\/\/habr.com\/ru\/post\/582180\/#recept3\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0446\u0435\u043f\u0442\u043e\u043c 3<\/a> \u0438\u043c\u0435\u0435\u043c \u043f\u0440\u0430\u0432\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">TableWidget::TableWidget(QWidget* parent) : QTableWidget(parent) { setSelectionBehavior(QAbstractItemView::SelectRows); setSelectionMode(QAbstractItemView::ExtendedSelection); setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); verticalHeader()->setVisible(false);  setRowCount(2); setColumnCount(3);  QStringList headers; headers &lt;&lt; \"Short\" &lt;&lt; \"Middle header\" &lt;&lt; \"Long long long long header\"; setHorizontalHeaderLabels(headers);  QFont font(horizontalHeader()->font()); \/\/ A header will draw a bold font after row selecting. Take it into account. font.setBold(true);  QFontMetrics fm(font); int space = fm.horizontalAdvance(\"a\"); \/\/ one symbol width  for (int i = 0; i &lt; headers.size(); i++) { int w = fm.horizontalAdvance(headers[i]) + 2 * space; setColumnWidth(i, w); } }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0448\u0440\u0438\u0444\u0442\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0442\u0435\u043a\u0441\u0442 (\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432) \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0441\u044f \u0432 \u0440\u0430\u043c\u043a\u0438.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0449\u0435 \u043f\u0430\u0440\u0443 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0432\u0438\u0434\u0436\u0435\u0442:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">QSize TableWidget::sizeHint() const { const double scale = screen()->logicalDotsPerInchX() \/ 96.0; return QSize(qRound(320 * scale), qRound(100 * scale)); } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0433\u0440\u0443\u0431\u043e \u043d\u0430\u0440\u0443\u0448\u0438\u043b\u0438 \u0432\u0435\u0440\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443: \u0437\u0434\u0435\u0441\u044c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0438\u0437 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 (\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0438\u043b\u0435\u0439), \u0430 \u043d\u0435 \u0438\u0437 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/post\/582180\/#recept3\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0446\u0435\u043f\u0442 3<\/a> \u0432\u043c\u0435\u0441\u0442\u043e <a href=\"https:\/\/habr.com\/ru\/post\/582180\/#recept6\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0446\u0435\u043f\u0442\u0430 6<\/a>. \u0427\u0442\u043e \u0436, \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0436\u0438\u0437\u043d\u044c \u043d\u0430\u043c \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u0438\u0442, \u0430 \u0434\u043b\u044f \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u043e\u0439\u0434\u0435\u0442.<\/p>\n<p>\u0412\u00a0 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u0438\u0434\u0436\u0435\u0442:<\/p>\n<figure class=\"full-width\"><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0432\u0438\u0434\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u043f\u0440\u0438 \u043b\u044e\u0431\u044b\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0445 \u044d\u043a\u0440\u0430\u043d\u0430. \u0427\u0435\u0433\u043e \u0436\u0435 \u0431\u043e\u043b\u0435?<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u043a \u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u0430 \u0442\u0435\u043a\u0441\u0442 \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0434\u043b\u0438\u043d\u043d\u044b\u043c, \u0442\u0430\u043a \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b (\u0438\u043c\u0435\u0435\u043c \u0432 \u0432\u0438\u0434\u0443 \u0448\u0438\u0440\u0438\u043d\u0443, \u043a\u043e\u043d\u0435\u0447\u043d\u043e) \u043a\u043e\u043b\u043e\u043d\u043e\u043a. \u0410, \u043f\u043e\u043c\u0435\u043d\u044f\u0432, \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0410 \u0438\u043d\u0430\u0447\u0435 \u0437\u0430\u0447\u0435\u043c \u0435\u043c\u0443 \u0442\u0430\u043a\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c GUI? \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u2013 \u044d\u0442\u043e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435, \u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c GUI \u00ab\u043f\u043e\u0434 \u0441\u0435\u0431\u044f\u00bb.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435:<\/p>\n<pre><code class=\"cpp\">TableWidget::~TableWidget() { QSettings settings(\"Test company name\", \"Test product name\"); settings.setValue(\"TableColumns\", horizontalHeader()->saveState()); }<\/code><\/pre>\n<p>\u0410 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0431\u0443\u0434\u0435\u043c \u044d\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043a\u043e\u043d\u0435\u0446 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"cpp\">QSettings settings(\"Test company name\", \"Test product name\"); QVariant var = settings.value(\"TableColumns\"); if (!var.isNull()) horizontalHeader()->restoreState(var.toByteArray());<\/code><\/pre>\n<p>\u0418 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435. \u042d\u0442\u043e \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f (\u0430 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043a\u0443\u043f\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 4K 27&#8243; \u0438\u00a0 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430):<\/p>\n<figure class=\"full-width\"><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043d\u0435\u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u0435\u0434\u044c \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0433\u0440\u0443\u0437\u044f\u0442\u0441\u044f \u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b \u0434\u043b\u044f \u0442\u0435\u0445, \u00ab\u0441\u0442\u0430\u0440\u044b\u0445\u00bb \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0448\u0440\u0438\u0444\u0442\u043e\u0432.<\/p>\n<p>\u00a0\u0420\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0443\u043c\u044f \u043f\u0443\u0442\u044f\u043c\u0438. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e.<\/p>\n<p><a class=\"anchor\" name=\"recept7\" id=\"recept7\"><\/a><\/p>\n<p><strong><em>\u0420\u0435\u0446\u0435\u043f\u0442 7. \u0412\u0435\u0434\u0438\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0442\u043e\u043a \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u0432 \u044d\u043a\u0440\u0430\u043d\u0430.<\/em><\/strong><\/p>\n<p>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2013 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0432\u0435\u0442\u043a\u0443 \u0440\u0435\u0435\u0441\u0442\u0440\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0448\u043b\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 24&#8243; FullHD \u0441 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0430 100% \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u043e\u044f \u0432\u0435\u0442\u043a\u0430, \u0430 \u0434\u043b\u044f 27&#8243; 4K \u0441 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0430 200% \u00a0\u2013 \u0441\u0432\u043e\u044f. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043a\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<pre><code class=\"cpp\">const int scale = qRound(screen()->logicalDotsPerInchX() \/ 96.0 * 100); QSettings settings(\"Test company name\", \"Test product name\"); QVariant var = settings.value(QString(\"TableColumns\/scale%1\").arg(scale)); if (!var.isNull()) horizontalHeader()->restoreState(var.toByteArray());<\/code><\/pre>\n<p>\u0410 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043d\u0430 \u044d\u0442\u043e:<\/p>\n<pre><code class=\"cpp\">TableWidget::~TableWidget() { const int scale = qRound(screen()->logicalDotsPerInchX() \/ 96.0 * 100); QSettings settings(\"Test company name\", \"Test product name\"); settings.setValue(QString(\"TableColumns\/scale%1\").arg(scale), horizontalHeader()->saveState()); }<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u043b\u044e\u0431\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0430\u0448\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430:<\/p>\n<figure class=\"full-width\"><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0443 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u043c\u0438\u043d\u0443\u0441: \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0442 \u0432\u0441\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u0432\u043e\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u0432\u0441\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443). \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c-\u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e, \u043a\u0430\u043a \u043f\u0440\u0438\u0432\u0438\u043b\u043e, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0442\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u0434\u043e\u0447\u0435\u0442, \u0440\u0430\u0437 \u0443\u0436 \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u043b\u0438\u0448\u044c \u0435\u0434\u0438\u043d\u043e\u0436\u0434\u044b.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043e\u0439\u0442\u0438 \u0438 \u044d\u0442\u043e\u0442, \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043c\u0438\u043d\u0443\u0441? \u0414\u0430.<\/p>\n<h3>\u0420\u0435\u0446\u0435\u043f\u0442 8. \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0445 \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430<\/h3>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>QTableView::setColumnWidth<\/code>, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u2013 \u043d\u0430\u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442, \u0440\u0430\u0432\u043d\u044b\u0439 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435) \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0443. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0435\u0441\u0442\u0438 \u0432\u0442\u043e\u0440\u0443\u044e (\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435) \u0432\u0435\u0442\u043a\u0438 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430:<\/p>\n<pre><code class=\"cpp\">TableWidget::~TableWidget() { QSettings settings(\"Test company name\", \"Test product name\"); settings.setValue(\"TableColumns\", horizontalHeader()->saveState());  const double scale = screen()->logicalDotsPerInchX() \/ 96.0; settings.setValue(\"Scale\", scale);  }<\/code><\/pre>\n<p>\u0410 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0432 \u043a\u043e\u043d\u0435\u0446, \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 (\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u043a) \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 <code>restoreState<\/code>:<\/p>\n<pre><code class=\"cpp\">QVariant vScale = settings.value(\"Scale\"); if (!vScale.isNull()) { const double currentScale = screen()->logicalDotsPerInchX() \/ 96.0; double lastScale = vScale.toDouble(); if (!qFuzzyCompare(currentScale, lastScale)) { for (int i = 0; i &lt; headers.size(); i++) setColumnWidth(i, qRound(columnWidth(i) * currentScale \/ lastScale)); } }<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u043b\u044e\u0431\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0430\u0448\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u043a\u0440\u0430\u043d\u0430:<\/p>\n<figure class=\"full-width\"><figcaption>Windows7, \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u044d\u043a\u0440\u0430\u043d\u0430 100%,  150%.<\/figcaption><\/figure>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043b\u044e\u0431\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: \u043a\u0430\u043a\u043e\u0439 \u043f\u043e\u043b\u0437\u0443\u043d\u043e\u043a \u0438 \u043a\u0443\u0434\u0430 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u043d\u0443\u043b, \u043a\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u0432\u044b\u0431\u0440\u0430\u043b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043a\u0443\u0434\u0430 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u043d\u0443\u043b \u0441\u043f\u043b\u0438\u0442\u0442\u0435\u0440 \u0438 \u0442.\u0434. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0438\u0445 \u043e\u0442\u0442\u0443\u0434\u0430 \u2013 \u0431\u043e\u043b\u044c\u0448\u0430\u044f, \u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d (\u0432\u0435\u0440\u043d\u0435\u0435, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043a\u043b\u0438\u043d\u0430\u0442\u044c \u0412\u0430\u0441), \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0412\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u0435 \u0435\u043c\u0443 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0430 \u043d\u0435 \u0442\u0438\u0445\u043e \u0438\u0445 \u043f\u043e\u0445\u043e\u0440\u043e\u043d\u0438\u0442\u0435. \u00a0\u041f\u043e\u0441\u0435\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u0446\u0435\u043f\u0442\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0438 \u043c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0440\u0435\u0446\u0435\u043f\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e (<a href=\"#recept7\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u0446\u0435\u043f\u0442\u0430 7<\/a>).<\/p>\n<p>\u041d\u0430 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0436\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0442\u043e, \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430 \u043d\u0435\u043c \u044d\u0442\u043e\u0442 \u0440\u0435\u0446\u0435\u043f\u0442.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 8. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0432\u0438\u0434\u0436\u0435\u0442 \u0438 \u0432\u0441\u0451, \u0447\u0442\u043e \u0432 \u043d\u0435\u043c<\/h3>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u043e\u0440\u0432\u0435\u043c\u0441\u044f \u043e\u0442 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043c\u0430\u0445\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0447\u0442\u043e-\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0443\u043f\u043d\u043e\u0435. \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0432\u0438\u0434\u0436\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0439 \u043e\u0442 QMainWindow \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0431\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e QDockWidget`\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u043e\u0439:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) { QLabel* imageLabel = new QLabel; imageLabel->setPixmap(QPixmap(\"nature.jpg\")); auto scrollArea = new QScrollArea; scrollArea->setWidget(imageLabel);  auto dock1 = new QDockWidget(\"Dock1 Title\"); dock1->setWidget(new TableWidget); auto dock2 = new QDockWidget(\"Dock2 Title\"); dock2->setWidget(new QWidget); auto dock3 = new QDockWidget(\"Dock3 Title\"); dock3->setWidget(new QWidget); auto dock4 = new QDockWidget(\"Dock4 Title\"); dock4->setWidget(new ScaleWgt);  setCentralWidget(scrollArea);<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-393228","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/393228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=393228"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/393228\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=393228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=393228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=393228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}