彼は、主にウィジェットなどを移動するための方法論の組み合わせがいくつもあるために、私を何年も悩ませてきました。基本的に、アプリの特定の領域にポップアップできるようにしたい単純なウィジェットがあります。問題は、必要な場所にポップアップするように見えないことです。さらに、アプリの左上にあるウィジェットと、たとえば下にあるウィジェットを指すようにポップアップするかどうかに基づいて、「ポインター」側を調整できるように設定したいと思います。右。
理想的には、ポップアップを親ウィジェットの端にほぼ隣接させて配置し、それがどこにあるかに基づいて固定することができます。これが私が試してきたことです。
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
class popup(QWidget):
def __init__(self, parent = None, widget=None):
QWidget.__init__(self, parent)
layout = QGridLayout(self)
button = QPushButton("Very Interesting Text Popup. Here's an arrow ^")
layout.addWidget(button)
self.move(widget.rect().bottomLeft())
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)
self.button = QPushButton('Hit this button to show a popup', self)
self.button.clicked.connect(self.handleOpenDialog)
self.button.move(250, 50)
self.resize(600, 200)
def handleOpenDialog(self):
self.popup = popup(self, self.button)
self.popup.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Window()
win.show()
sys.exit(app.exec_())
このコードは、ウィジェットの中央にランダムにボタンを生成します。私が取得しようとしているのは、この例では、ポップアップボタンの矢印がウィジェットの右下隅を指すように、右上に「ピボット」があるボタンの下に表示するポップアップです。ただし、代わりにウィンドウの左上にポップアップしています。.move や .setGeometry をいじったり、QRect をいじったりしても、一生これを理解することはできません。手を貸してくれる人は誰でも大歓迎です。ありがとう!