簡體   English   中英

Mac和Windows / Linux之間的布局不同(相同的* .ui文件)

[英]Different layout between Mac and Windows/Linux (same *.ui files)

我正在使用Qt Framework部署我的應用程序。 在Windows和Linux中,布局的行為是相同的。 如果我調整窗口的大小,布局就會適應。 在Mac OS中不會發生這種情況。 要為Mac開發,我使用的是虛擬機(分辨率為1024x768),但是,當我嘗試在“真正的” Mac(分辨率最大)的Mac中啟動捆綁包時,結果會很糟糕!

我放了一些照片:

MAC-虛擬機(1024x768)-第一個選項卡(確定)

MAC-虛擬機(1024x768)-第一個選項卡(確定)

MAC-虛擬機(1024x768)-第二個選項卡(不正常)**

MAC-虛擬機(1024x768)-第二個選項卡(不正常)

**第二個標簽“ Rubrica Contatti”的設計類似於第一個標簽“ Ricettario”。 在設計器中,第二個選項卡似乎正常,在運行時不行!

我試圖創建一個新項目進行測試。 我已經用表格布局設置了中央窗口小部件。 我創建了2個包含這些項目的小部件(每個小部件都有一個網格布局):

  • LineEdit
  • 組合框
  • 包含2個標簽和2個復選框的GroupBox(具有網格布局)

所有這三個項目都聚集在垂直布局中。 我將左側小部件放在QSizePolicy :: Minimum中 ,將右側小部件放在QSizePolicy :: Preferred中 在Qt Designer中,左側面板較小,右側面板水平放大。 當我啟動應用程序時,兩個小部件的寬度都相同,並且位於窗口的中心。

注意:
打開任何項目時,都會在“常規消息”中看到此文本。

Warnings while parsing QML type information of /Users/denny/Qt/5.5/clang_64/qml:  
<dump of /Users/denny/Qt/5.5/clang_64/qml>:1:24: Reading only version 1.1 parts.  
<dump of /Users/denny/Qt/5.5/clang_64/qml>:10:5: Expected only Component and ModuleApi objects definitions. 

可能是原因嗎?

問題仍然存在,但現在已經解決了……

QApplication::setStyle("fusion");  

我的應用程序不會使用Mac主題,但會使用Fusion主題...

注意:
圖形比較丑陋,但是可以用!

  • 對於左側面板,將水平大小策略 QSizePolicy::MinimumQSizePolicy::Minimum 這意味着該小部件可以更大,但是沒有必要對其進行擴展
  • 對於右側面板,將水平尺寸策略QSizePolicy::PreferredQSizePolicy::Preferred 這意味着如果有空間可以進一步使用它

將左面板小部件放在單個小部件中,將右面板小部件放在另一個小部件中,然后使用表單布局。 表單布局通常為左右設置正確的尺寸策略。

發生這種情況是因為不同的樣式使用了不同的擴展策略。 例如,QFormLayout處理枚舉QFormLayout :: FieldGrowthPolicy。

QFormLayout::FieldsStayAtSizeHint這是QMacStyle的默認設置。

QFormLayout::AllNonFixedFieldsGrow這是大多數樣式的默認策略。

QFormLayout::ExpandingFieldsGrow這是Plastique的默認策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM