QToolButton
のメニューを使用すると、ボタンのすぐ下にメニューが表示されます。ボタンの左右にメニューを表示する方法はありますか?QToolButton:メニュー位置を変更する
4
A
答えて
3
void QToolButtonPrivate::popupTimerDone()
の位置は、[Qtインストールディレクトリ] /src/gui/widgets/qtoolbutton.cppにハードコードされています。独自のポップアップメニューを最初から実装しない限り、それをオーバーライドするのはかなり難しいようです。
1
私はこの質問がしばらく前に答えられたことを知っていますが、私はこの質問に新しい答えを加えたいと思っていました。実際には、QToolButtonのメニュー位置を変更するのはかなり簡単です。 QMenuをサブクラス化し、イベント関数をオーバーライドする必要があります。ショーイベントがあるときは、メニューの位置を変更するだけです。ここで
はPySideを使った簡単な例です:
from PySide import QtCore, QtGui
class MyMenu(QtGui.QMenu):
def event(self,event):
if event.type() == QtCore.QEvent.Show:
self.move(self.parent().mapToGlobal(QtCore.QPoint(0,0))-QtCore.QPoint(0,self.height()))
return super(MyMenu,self).event(event)
if __name__ == "__main__":
app = QtGui.QApplication([])
w = QtGui.QWidget()
w.setGeometry(100,100,500,500)
tb = QtGui.QToolButton(w)
tb.setText("HELLO")
tb.setGeometry(70,70,40,30)
m = MyMenu("Menu",tb)
m.addAction("Exit")
tb.setMenu(m)
w.show()
app.exec_()
関連する問題
- 1. 電子変更メニューの位置
- 2. jQuery - ページ変更時のメニューの位置を記憶する
- 3. 親ウィジェットのサイズ変更または移動時にQToolButtonの位置が変更されない
- 4. 変更位置
- 5. WordPressメニューの位置
- 6. メニュー/ナビゲーションの位置
- 7. アンドロイドでの位置変更のマーカー位置を変更する方法
- 8. ナンバースクリプトでサイドドロワーの位置/位置を変更するには
- 9. UIImageViewの位置を変更する
- 10. ステータスバーの位置を変更する
- 11. Openstreetmaps LayerSwitcherの位置を変更する
- 12. ブートストラップナビバーの位置を変更する
- 13. HTML - フォームの位置を変更する
- 14. Windows。ドロップダウンメニューの位置を変更する
- 15. ブートストラップのツールチップ位置を変更する
- 16. Android:ステータスバーの位置を変更する
- 17. Androidアクションバーの位置を変更する
- 18. スプライト位置を変更するonAccelerometerChanged
- 19. 位置情報を変更するUITouch
- 20. WebViewの位置を変更するココア
- 21. modelineの位置を変更する
- 22. カーソル位置のテキストを変更する
- 23. TabBarバックグラウンドの位置を変更する
- 24. CSS - 位置を変更する
- 25. 日時の位置を変更する
- 26. リーフレットコントロールセレクターの位置を変更する
- 27. 位置を変更するUIAlertController(UIAlertControllerStyleActionSheet)
- 28. 固定位置メニューのオーバーラップ
- 29. HTMLメニューの位置付け
- 30. メニュー位置の問題