質問: Qt(C++)でQPushButtonの文字を装飾する方法はないでしようか 1.ラベルだと"aaa\nbbb"とすると ``` aaa bbb ``` こんな感じでラベルの文字が改行されるのですが ボタンのテキストに同じように改行されませんでした しょうが無いのでボタンの上にラベルを配置して改行した文字を表示するようにしたのですが そうすると今度はクリックしてもラベルをクリックしたことになってしまいボタンクリックが発生しません QPushButtonで文字を改行して改行幅を調整できるようにするか ラベルを上にかぶせたら、ラベルを透過してボタンクリックすることに出来ないでしょうか 2.ボタンを縦長にしたら文字も縦書きに見えるような方法はないでしょうか ``` あ い う え お ``` というような感じの縦長ボタンを作りたいのですが
回答: お二人ともありがとうございます まず、labelにはclickイベントがないのでigoreは使えませんでした また、proxyもボタン一つのためにそこまでするか・・・と言うのがあって 今回は超インチキをして回避しました ●ボタンを上にして透明にする ボタンに対して以下の関数を実行 ``` ui->btnA->setWindowOpacity(0); ui->btnA->setAttribute(Qt::WA_TranslucentBackground, false); ``` デザイナーのプロパティのstylesheetのところにしてクリックされたら半透明にする ``` QPushButton:!pressed{background-color: rgba( 0, 0, 255, 0);border:0px none; QPushButton:pressed{background-color: rgba( 0, 0, 255, 0.5);border:0px none; ``` ●ラベルを下にして改行幅を調整 デザイナーのプロパティのtextのところに ``` あいうえおかきくけこ ``` としてみたら見た目は本来のクリックとは違いますがとりあえずOKになりました(背景を黒にしたらクリックしたらなんとなくピカッと光るような感じになりました) 縦書きはもう上の文字の「あいうえお」のところをプログラムでひたすら一文字ずつ入れるという解決法を使いました