私は...最小化/最大化ウィンドウコントロールでQt.Toolウィンドウを表示するには?
class ToolWindow(QtWidgets.QMainWindow):
"""Generic window to be used as non-modal tool
Usage:
tool_win = ToolWindow()
layout = QtWidgets.QHBoxLayout()
button = QtWidgets.QPushButton('hello')
layout.addWidget(button)
tool_win.setup(layout)
button.released.connect(lambda: print('hello'))
tool_win.show()
"""
def __init__(self):
super(ToolWindow, self).__init__()
def setup(self, layout,
window_title='Untitled', object_name=None, tool=True):
"""Setup tool window"""
if tool:
self.setWindowFlags(QtCore.Qt.Tool)
self.widget = QtWidgets.QWidget()
self.widget.setLayout(layout)
self.setCentralWidget(self.widget)
self.setWindowTitle(window_title)
def closeEvent(self, event):
"""Delete object when closed"""
self.deleteLater()
はしかし、私は典型的な最大化を追加し、ウィンドウにウィンドウコントロールを最小限にしたいです。私は成功せずToolWindowクラスに以下を追加しようとしてきました(ツールウィンドウはまだウィンドウコントロールを最小化/最大化表示されません):
self.setWindowFlags(self.windowFlags() |
QtCore.Qt.WindowSystemMenuHint |
QtCore.Qt.WindowMinMaxButtonsHint)
ことが可能ですが、ツールウィンドウにこれらのコントロールを追加するには?
また、非モーダルウィンドウを作成できますが、常に親アプリケーションの上にあり、最大化/最小化ウィンドウコントロールを表示できますか?
注:このツールウィンドウは、システム上のすべてのウィンドウの上に置いておきたくありません。私はそれが常に私のアプリケーションの上にとどまりたいと思っています。
このプラットフォームにアクセスする必要があるプラットフォームを指定する必要があります。 – ekhumoro