2016-09-29 3 views
1

中:のQt C++ setWindowTitle()私はのように、二列にメインウィンドウのタイトルを設定する2つのライン

this->setWindowTitle("WINDOW \nTRACKER"); 

が、結果は1行でWINDOW TRACKERた:

WINDOW 
TRACKER 

私が使用してみました。

どのようにしてもかまいませんか?

ありがとうございます!

+2

「\ n」はエスケープシーケンスですが、動作するかどうかは疑問です。あなたは複数行のウィンドウタイトルを見たことがありますか? – LogicStuff

+0

私のデザイナーはデュアルラインタイトルのモックアップをくれたので、それが可能かどうかを知りたがっています) –

+0

おそらくいくつかのクラスを派生していますが、デフォルトではないと私は – Hayt

答えて

3

タイトルバーのテキストのレイアウトはほとんどQtの制御以外にも、一般的にQtは、単にウィンドウマネージャにまっすぐそのキャプションを通過すると、(Windowsのの1を含む)ほとんどのウィンドウマネージャはで複数行のテキストをサポートしていません。ウィンドウキャプション。

信頼性の高い方法でこのようなカスタマイズを行う場合は、borderless windowを作成し、独自のウィンドウの装飾(タイトルバー、ウィンドウの境界線など)を描き、関連するすべてのイベントを処理します(ドラッグあなたの "偽のタイトルバー"領域では、ウィンドウを移動する必要があります、あなたの "偽の最大化"ボタンをクリックしてウィンドウを最大化する必要があります...)など。 it is definitely possibleであり、すべてを完全に制御することができますが、非常に面倒なことですが、最も重要なのは、アプリケーションが実行中の環境に対して完全に異質に見えることです。

要するに、

+0

これは最高の方法です、ありがとう、私はそれを好きでした –

1

QStringを作成し、setWindowTitleにこのように使用するように伝えれば、何をしたいのですか?

QString windowTitle("WINDOW \n TRACKER); 
this->setWindowTitle(windowTitle); 

@Tusherのコメントで既に述べたように、1つの問題があります。ウィンドウタイトルを含むトップバーのサイズは、2行のテキストを含むのに十分な大きさではありません。残念ながら、QMainWindowは、2行のウィンドウタイトルのオプションをサポートしていないか、オプションを提供していません。上のコードは、以下のような結果をもたらします。

enter image description here

+1

が可能です。ほとんどのウィンドウマネージャでは動作しません。私は現在、ほとんどのGnomeアプリケーションのようにクライアント側のデコレーション以外のオプションは表示されません。 – HeyYO

+0

ありがとう)しかし、このコードはLinuxでは動作しますが、Windowsでは動作しません。理由はわかりません) –

+2

これは、Windowsのウィンドウマネージャが複数行のウィンドウタイトルをサポートしていないためです。ごめんなさい! –

関連する問題