import sys from PyQt4 import QtGui, QtCore class mwindow(QtGui.QWidget): def __init__(sf, title): QtGui.QWidget.__init__(sf) sf.setWindowTitle(title) sf.resize(400, 400) sf.layout = QtGui.QVBoxLayout() sf.setLayout(sf.layout) sf.unusebutton = QtGui.QPushButton() sf.layout.addWidget(sf.unusebutton) sf.layout.addStretch() sf.unusebutton.clicked.connect(sf.btnclicked) print(sf.unusebutton.rect()) def btnclicked(sf): popup = Popup(sf) popup.show() class Popup(QtGui.QWidget): def __init__(sf, parent): QtGui.QWidget.__init__(sf, parent) sf.setWindowFlags(QtCore.Qt.Popup) sf.lay = QtGui.QVBoxLayout() sf.lay.addWidget(QtGui.QLabel("Ахалай-махалай!")) sf.setLayout(sf.lay) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) frame = mwindow("Махалай-ахалай") frame.show() sys.exit(app.exec_())
Почему print(sf.unusebutton.rect()) возвращает координаты виджета как 0, 0? Почему его размеры (если я не укажу их в программе при помощи resize) 640х480?
Мне нужно: при нажатии на эту кнопочку выдать всплывающее окно ровно под кнопочкой и длиною в эту кнопочку. Для этого мне нужно как-то заполучить координаты для метода move для этого окна и размеры кнопочки, чтобы выставить соответствующую длину окну. А как это сделать-то?