2014-11-20 74 views
1

我在OSX上的Qt應用程序有非常奇怪的QMessageBoxes。QMessageBoxes在OSX中有非常奇怪的行爲

與Windows中的外觀相比,OSX上的所有消息框都具有非常小的字體。此外,標題不顯示。圖標也沒有(在窗口中顯示應用程序圖標)。按鈕的順序和默認的按鈕也不同,即使它們被放置在代碼的順序是一樣的窗口...

QMessageBox::critical(this, tr("Some Error"), tr("Cannot do what you want.")); 

if (QMessageBox::warning(this, tr("Some warning"), 
    tr("I can't do what you ask, do %1 instead?").arg(alternative), 
    QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) 
{} 

有許多這樣的消息框...

example

奇怪的是,第二圖像中的字體是非常小的...但我點擊程序外,並早在和字體刷新到不錯的大小...

example

是否可以添加樣式表...以及放入什麼? (我不能放置一個固定的大小,因爲我認爲他們應該能夠調整大小)

也重寫每個標準類型的消息框,創建一個對象,設置文本,圖標,字體,大小,將是一個巨大的工作量在一個非常大規模的計劃...那麼標題...

我的選擇是什麼?是否有可能在osx中​​以某種方式繼承消息框,以便我可以定義所需的行爲? (以及我將如何處理非常小的字體?)

在Windows和Linux下我沒有看到這種奇怪的行爲。使用Qt 4.8,OSX 10.6-10.9

回答

0

問題問題很好,發佈後提出的類似問題是豐富的信息。

我發現如何修復這個answer的字體。奇怪的是...我使用的字體大小是應用程序之一:(我的回答here相關問題)

我仍然試圖修復缺失的標題,雖然這answer幫助我瞭解OS中的正常行爲X不會顯示標題...而這answer可以幫助我確定如果要重寫幾百個消息框以顯示其標題,該怎麼辦。

至於默認的按鈕......我會代替QMessageBox::Yes

QMessageBox::Yes | QMessageBox::Default