私は現在、C++でQt 5.7-5.8で作業していますが、その下に黒い線が付いたQLabelに下線を引いています。私のQLabelがQGridLayoutの中にあることを知って、私はこのコードを試しましたが、それはその行を表示していません。C++でQtを使ってQGridLayoutのQLabelに下線を付けるには?
mViewerLayout->itemAtPosition(0, 0)->widget()->setStyleSheet("border-bottom: 8px solid black");
私は、オブジェクト名を設定し、そのobjectNameに()を介して、スタイルシートを設定しようとしましたが、私は中)(setStyleSheetの引用符内の関数呼び出しを代わりに「QLabel」の「QWidgetの」を書いてみましたコードサンプルを以下に示し、objectName()を使用せずに試しました。私はそれがどのように知っているにもかかわらず
mViewerLayout->itemAtPosition(0, 0)->widget()->setStyleSheet("QLabel {border-bottom: 8px solid black;}");
私はborder: 8px solid black
にスタイルシートを設定した場合、それが動作し、カバーQLabelのすべてのボーダーを、私はそれだけを強調したいとのborder-bottomが動作するようには思えません、 CSSの下の境界線を指定すると、Qtのドキュメントでもこの構文が指定されているようです。誰か私を修正してくださいできますか?
QLabel * lab = static_cast<QLabel *>(mViewerLayout->itemAtPosition(0, 0)->widget());
QFont f = lab->font();
f.setUnderline(true);
lab->setFont(f);
私はちょうどビルトイン下線の機能を使用することが容易になると偽のそれにしようとするよりも良い結果を与えると思います。このような何かについてどのように
お返事ありがとうございます、私はそれを感謝します!あなたが推奨するスタイルシートを試しましたが、それでも行は表示されません。私はいくつかのことを試してみます。 –
@ Quoc-Minh Qt 5.7と5.9でテストした私のアップデートを見ると、スタンドアロンの例(コード)で動作しているようです。この例は、スタンドアロンアプリケーションでは何をしますか? –
ありがとう!あなたは今、私の問題を解決しました。私は、ラベルをQBoxLayoutの中に入れて、そのレイアウトをQBoxLayoutに設定するためのコンテナとしてQWidgetを動作させなければならなかったようです。そして、そのコンテナQWidgetをQGridLayoutに追加すると、QLabelの下端が表示されました。コンテナを持っていないと表示されない理由は分かりませんが、ああ、うまくいきます! –